রেজার ব্যবহার করে ডেটটাইম ফর্ম্যাট রূপান্তর করা


104

নিম্নলিখিত কি ভুল?

@Convert.ToDateTime((@item.Date.ToShortDateString())," dd - M - yy")

@ আইটেম। তারিখটি 20/11/2005 12:00 এপ্রিল প্রদর্শিত হচ্ছে এবং আমি 20 নভেম্বর ২০১১ প্রদর্শন করতে চাই


1
বিদ্যমান বিভিন্ন তারিখের ফর্ম্যাট স্পেসিফায়ারগুলির সংমিশ্রণগুলি এখানে পাওয়া যাবে: msdn.microsoft.com/en-us/library/8kb3ddd4.aspx
জোসেফ উডওয়ার্ড

উত্তর:


264

চেষ্টা করুন:

@item.Date.ToString("dd MMM yyyy")

অথবা আপনি [DisplayFormat]আপনার ভিউ মডেলটিতে বৈশিষ্ট্যটি ব্যবহার করতে পারেন :

[DisplayFormat(DataFormatString = "{0:dd MMM yyyy}")]
public DateTime Date { get; set }

এবং আপনার দৃষ্টিতে সহজভাবে:

@Html.DisplayFor(x => x.Date)

3
আমি এটি একটি পাঠ্যবাক্স দিয়ে চেষ্টা করেছি এবং দুর্ভাগ্যক্রমে এটি কার্যকর হয়নি। পাঠ্যবাক্সগুলির জন্য এটি করার কোনও উপায় আছে?
টোবিয়াস

2
একটি পাঠ্যবাক্সের জন্য কেবল প্রদর্শনফোর্ড
ব্র্যান্ডন シ রেনফ্রো

10
আপনার ডিসপ্লে ফরম্যাট সংজ্ঞায় "প্রয়োগের ফর্ম্যাটআইডিনেডিটমোড = সত্য" সেট করতে ভুলবেন না যদি আপনি চান যদি তারিখের ফর্ম্যাটিং এডিটরফোর্ড () উপাদানগুলিতে প্রয়োগ করা হয়।
অবধি

1
অন্তর্নির্মিত তারিখ চয়নকারীটি ব্যবহার করার জন্য আমার একটি ডেটটাইম ক্ষেত্রের জন্য এটি ব্যবহার করা দরকার। ডিসপ্লেফর্ম্যাট টীকা ব্যতীত ব্রাউজারে জাভাস্ক্রিপ্ট কনসোলটি "নির্দিষ্ট মান '1/1/1990 12:00:00 এএম' প্রয়োজনীয় বিন্যাস, 'yyyy-MM-dd' অনুসারে সম্মতি দেয় না এমন কিছু দেখায়" " আমার এমভিসি ভিউতে এডিটরফোর্ড ব্যবহার করার সময় আমাকে ত্রুটিটি চলে যাওয়ার জন্য সঠিকভাবে প্রয়োগ করতে এবং প্রয়োগফরম্যাটিনইডিটমোড সেট করতে হয়েছিল এবং আমার মান ঠিকভাবে প্রদর্শন করতে হয়েছিল।
চিহ্নিত করুন

এটি আমার পক্ষে কাজ করে, তবে আমি জানি না - কোনও বৈশিষ্ট্যের মাধ্যমে মডেলটিতে একটি তারিখ (উপস্থাপনা উদ্বেগ) ফর্ম্যাট করার জন্য যুক্তি প্রয়োগ করে উদ্বেগের বিচ্ছেদ লঙ্ঘন করছি বলে আমার অনুভূতিটি পাওয়া যায়। আমি বুঝতে পেরেছি যে মাইক্রোসফ্ট এটি কীভাবে কাজ করবে এটি প্রত্যাশা করে তবে কেবল মনে হয় ডেটা প্রদর্শন ফর্ম্যাটটি ভিউয়ের সাথে পৃথক করা উচিত এবং মডেলটি কেবল একটি মডেল হওয়া উচিত।
ব্যারিপিকার

73

এটি সমাধান:

@item.Published.Value.ToString("dd. MM. yyyy")

ToString () এর আগে মান ব্যবহার করুন ।


1
এই কোড সঠিক কিন্তু যদি তারিখ কলাম নাল, এই ত্রুটি নিক্ষেপ করা হবে, তাই চেষ্টা এই
shaijut

স্টম সঠিক, যদি আপনার নাল মান থাকে তবে আপনি ত্রুটিটি ছুঁড়ে ফেলবেন, লিঙ্কটির জন্য ধন্যবাদ
নিক কাহন

ঠিক আমি যা খুঁজছিলাম
রজার টেলো

নাল ব্যতিক্রমগুলি নাল কোয়েলসিং অপারেটর ব্যবহার করে পরিচালনা করা যায় - @(item.DOB?.ToString("dd-MMM-yyyy"))। অথবা HasValue সম্পত্তি ব্যবহার করে - @(item.DataDate.HasValue ? item.DataDate.Value.Date.ToString("dd MMM yyyy") : null)। উভয় ক্ষেত্রেই সম্পত্তি তারিখের সময়সীমার হতে হবে।
কোয়ার

31

এমভিসি ৪.০ এ এটি ব্যবহার করে দেখুন

@Html.TextBoxFor(m => m.YourDate, "{0:dd/MM/yyyy}", new { @class = "datefield form-control", @placeholder = "Enter start date..." })

2
আমি জানি না কেন কেউ এই উত্তরটিকে হ্রাস করবে।
মিকায়েল আবদুললেভ

আমি ধরে নেব যে সমাধানটি এই সমাধানের কারণে ওপিকে অনুরোধ করা "ডিডি এমএমএম ইয়াই" ফর্ম্যাটের পরিবর্তে তারিখটিকে "ডিডি / এমএম / ইয়াই" হিসাবে ফর্ম্যাট করার কারণে হয়েছিল
পিটিডি

1
এই এক নির্বাচিত উত্তর হওয়া উচিত। আমি অন্যদের চেষ্টা করেছিলাম এবং কেউই কাজ করেনি। ধন্যবাদ.
ভিক্টর লি

20

[ডিসপ্লেফর্ম্যাট] বৈশিষ্ট্যটি কেবলমাত্র এডিটরফোর্ড / ডিসপ্লেফোর্ডে ব্যবহৃত হয় এবং টেক্সটবক্সফোর্ডের মতো কাঁচা এইচটিএমএল এপিআই দ্বারা নয়। আমি নিম্নলিখিত কাজ করে এটি কাজ করেছিলাম,

মডেল:

[Display(Name = "When was that document issued ?")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
public DateTime? LiquorLicenceDocumentIssueDate { get; set; }

দেখুন:

        <div id="IsLiquorLicenceDocumentOnPremisesYes" class="groupLongLabel">
            @Html.LabelFor(m => m.LiquorLicenceDocumentIssueDate)
            <span class="indicator"></span>
            @Html.EditorFor(m => m.LiquorLicenceDocumentIssueDate)
            <span id="validEmail"></span>
            <br />
            @Html.ValidationMessageFor(m => m.LiquorLicenceDocumentIssueDate)
        </div>

আউটপুট: 30/12/2011

সম্পর্কিত লিঙ্ক:

http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.displayformatattribute.applyformatineditmode.aspx


1
পর্যায়ক্রমে, আপনি @ স্ট্রিংও ব্যবহার করতে পারেন For ফর্ম্যাট ("{0: এমএম ইয়াই}", ইমপ্রিন্ট. ভার্সন তারিখ)
দিগন্ত কুমার


4

রেজারের জন্য ভিউ / শেয়ার্ড / এডিটরটিম্পলেটস ফোল্ডারে ডেটটাইম সিএসটিএমএল ফাইলটি রাখুন। ডেটটাইম.cshtml দুটি লাইন ধারণ করে এবং 9/11/2001 তারিখের ফর্ম্যাটের তারিখ সহ একটি পাঠ্যবক্স তৈরি করে।

@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty), new { @class = "datePicker" })

1
আপনাকে ধন্যবাদ ... অন্য কারও কাজ করতে পারিনি। সি # / রেজার কি এতটা পরিবর্তন করেছে যেখানে সাধারণ তারিখের ফর্ম্যাটটিতে কাজ করার জন্য এতগুলি জিনিস যেতে হয়? ইন্টারনেটে সর্বাধিক প্রস্তাবিত উত্তর: .... টুস্ট্রিং ("ডিডি এমএমএম ইয়াই") কখনই আমার পক্ষে কাজ করেনি এবং আমি সর্বদা এটিকে ভেরিয়েবল হিসাবে সেট করে একটি তারিখে রূপান্তরিত করে এবং তারপরে তারিখের আউটপুট তৈরি করেছিলাম। আমি জানতাম যে এখানে একটি লাইনার থাকতে হবে যা কোথাও কাজ করেছিল।
অ্যান্টনি গ্রিগস

অ্যান্টনি গ্রিগস, আমি তোমার কুজ অনুভব করছি। ব্যথাটি ভাগ করে নিতে পেরে আনন্দিত হলাম যাতে আমরা সকলেই ----½ বছর পরে লাভ করতে পারি!
জুলিউ বার্টো

3

সাধারণভাবে, লিখিত মাসটি এমএমএম হিসাবে অব্যাহতিপ্রাপ্ত হয়, 4-অঙ্কের বছর হিসাবে yYyy, সুতরাং আপনার ফর্ম্যাট স্ট্রিংটি "dd এমএমএম yyyy" এর মতো হওয়া উচিত

DateTime.ToString("dd MMM yyyy")

@ ভিউব্যাগ.পরিচেসইনফো.লাস্টপ্যুরচেসটাইম.টাস্ট্রিং ("dd.MM.yyyy")
ইয়োনেক্সব্যাট

3

উপরের পরামর্শের ভিত্তিতে আমি পুরোপুরি এই কাজটি করতে সক্ষম হইনি। ডেটা টাইপঅ্যাট্রিবিউট সহ [DataType(DataType.Date)]আমার সমস্যাটি সমাধান হয়েছে বলে মনে হচ্ছে, দেখুন:

মডেল

[Required]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime RptDate { get; set; }

দৃশ্য

@Html.EditorFor(m => m.CLPosts.RptDate)

আছে HTH


1

প্রদত্ত সমস্ত সমাধানের জন্য, আপনি যখন এটি একটি আধুনিক ব্রাউজারে (এফএফ এর মতো) চেষ্টা করেন এবং আপনি সঠিক মডেলটি সেট করেন

// Model
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime Start { get; set; }

// View
<div class="form-group">
    @Html.LabelFor(model => model.Start, htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control"} })
    </div>
</div>

MVC (5) wil রেন্ডার ( টাইপ ইনপুটের সেট করা হয় তারিখ আপনার মডেল আপনার তারিখ সেটিংসের উপর ভিত্তি করে!)

<div class="col-md-10">
<input class="form-control text-box single-line" data-val="true" data-val-date="The field Start must be a date." data-val-required="The Start field is required." id="Start" name="Start" value="01-05-2018" type="date">
        <span class="field-validation-valid text-danger" data-valmsg-for="Start" data-valmsg-replace="true"></span>
</div>

এবং ব্রাউজারটি প্রদর্শন করবে

এখানে চিত্র বর্ণনা লিখুন

এই সমস্যার সমাধান করতে আপনি পরিবর্তন করতে হবে টাইপ করার টেক্সট পরিবর্তে তারিখ (আপনি আপনার কাস্টম ইস্ত্রি ব্যবহার করতে চান যদি)

@Html.EditorFor(model => model.Start, "{0:dd-MM-yyyy}", new { htmlAttributes = new { @class = "form-control", @type = "text" } })
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.