উপরোক্ত উত্তরগুলির মধ্যে সত্যই আমাকে সহায়তা করেনি বলেই আমি এই সমস্যার সমাধানে কাজ করছি working আমি jquery সপ্তাহের ক্যালেন্ডারের সাথে কাজ করছি এবং সার্ভারে এবং স্থানীয়ভাবে পৃষ্ঠায় সময় অঞ্চল সম্পর্কিত তথ্য পেতে আমার তারিখগুলি প্রয়োজন। বেশ কিছুক্ষন খোঁড়াখুঁড়ি করার পরে, আমি এমন একটি সমাধান বের করেছিলাম যা অন্যকে সাহায্য করতে পারে।
আমি অ্যাসপনেট ৩.৫, বনাম ২০০৮, এসপ নেটওয়্যার এমভিসি ২ এবং জেকারি সপ্তাহের ক্যালেন্ডার ব্যবহার করছি,
প্রথমত, আমি স্টিভেন লেভিথনের লিখিত একটি গ্রন্থাগার ব্যবহার করছি যা ক্লায়েন্টের সাথে তারিখগুলি মোকাবেলায় সহায়তা করে, স্টিভেন লেভিথনের তারিখের লাইব্রেরি । IsoUtcDateTime বিন্যাসটি আমার যা প্রয়োজন তার জন্য উপযুক্ত। আমার jquery AJAX কলটিতে আমি লাইব্রেরিতে isoUtcDateTime বিন্যাসের সাথে প্রদত্ত ফর্ম্যাট ফাংশনটি ব্যবহার করি এবং যখন এজ্যাক্স কলটি আমার অ্যাকশন পদ্ধতিতে আঘাত করে, তখন ডেটটাইম কাইন্ডটি স্থানীয় সেট করা থাকে এবং সার্ভারের সময় প্রতিবিম্বিত হয়।
আমি যখন আমার পৃষ্ঠায় এজেএক্সের মাধ্যমে তারিখগুলি প্রেরণ করি, তখন আমি "ডিডিডি, ডিডি এমএমএম ইয়াই এইচ এইচ": 'মিমি': 'এসএস' জিএমটি'জেজ "ব্যবহার করে তারিখগুলি বিন্যাস করে পাঠ্য স্ট্রিং হিসাবে প্রেরণ করি। এই ফর্ম্যাটটি সহজেই ক্লায়েন্ট সাইড ব্যবহার করে রূপান্তরিত হয়
var myDate = new Date(myReceivedDate);
স্টিভ লেভিথনের উত্স, যা আপনি ডাউনলোড করতে পারেন তা এখানে আমার সম্পূর্ণ সমাধান বিয়োগ:
নিয়ন্ত্রক:
public class HomeController : Controller
{
public const string DATE_FORMAT = "ddd, dd MMM yyyy HH':'mm':'ss 'GMT'zzzz";
public ActionResult Index()
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult About()
{
return View();
}
public JsonResult GetData()
{
DateTime myDate = DateTime.Now.ToLocalTime();
return new JsonResult { Data = new { myDate = myDate.ToString(DATE_FORMAT) } };
}
public JsonResult ReceiveData(DateTime myDate)
{
return new JsonResult { Data = new { myDate = myDate.ToString(DATE_FORMAT) } };
}
}
javascript:
<script type="text/javascript">
function getData() {
$.ajax({
url: "/Home/GetData",
type: "POST",
cache: "false",
dataType: "json",
success: function(data) {
alert(data.myDate);
var newDate = cleanDate(data.myDate);
alert(newDate);
sendData(newDate);
}
});
}
function cleanDate(d) {
if (typeof d == 'string') {
return new Date(d) || Date.parse(d) || new Date(parseInt(d));
}
if (typeof d == 'number') {
return new Date(d);
}
return d;
}
function sendData(newDate) {
$.ajax({
url: "/Home/ReceiveData",
type: "POST",
cache: "false",
dataType: "json",
data:
{
myDate: newDate.format("isoUtcDateTime")
},
success: function(data) {
alert(data.myDate);
var newDate = cleanDate(data.myDate);
alert(newDate);
}
});
}
// bind myButton click event to call getData
$(document).ready(function() {
$('input#myButton').bind('click', getData);
});
</script>
আমি আশা করি এই দ্রুত উদাহরণটি অন্যদেরকে একই পরিস্থিতিতে যেমন আমার মধ্যে ছিল তেমনভাবে সহায়তা করে। এই মুহুর্তে এটি মাইক্রোসফ্ট জেএসএন সিরিয়ালাইজেশনের সাথে খুব ভালভাবে কাজ করছে বলে মনে হয় এবং সময়সীমা জুড়ে আমার তারিখগুলি সঠিক রাখে।