في فترة ما بعد الظهر ، واجهنا مشكلة في تحويل تنسيقات تاريخ MVC و ExtJs. نتيجة تسلسل كائن DateTime من جانب خادم .NET هو تنسيق سلسلة ، مثل "/التاريخ (1335258540000)/' .
إن عدد صحيح 1335258540000 هو في الواقع فاصل ميلي ثانية بين 1 يناير 1970 و DateTime هذا. من خلال JavaScript ، استخدم وظيفة eval لتحويل سلسلة التاريخ هذه إلى كائن تاريخ مع منطقة زمنية ، على النحو التالي
استخدم Var Date = eval ('new' + eval ('/date (1335258540000)/'). المصدر) للحصول على كائن JS
تحقق من ذلك بوضوح من خلال التنبيه (التاريخ).
الثلاثاء 24 أبريل 17:09:00 UTC+0800 2012
ما ورد أعلاه عبارة عن سلسلة يتم الحصول عليها تلقائيًا عن طريق تسلسل تاريخ C# JSON. يمكنك أيضًا كتابة وظيفة للحصول على هذا الرقم من خلال C#، على سبيل المثال
Public Long Millitimestamp (DateTime thedate) {DateTime D1 = New DateTime (1970 ، 1 ، 1) ؛ DateTime D2 = thedate.touniversaltime () ؛ Timespan ts = new timepan (d2.ticks - d1.ticks) ؛ العودة (طويلة) ts.totalmilliseconds ؛ }الوظيفة أعلاه هي نفسها عدد صحيح في السلسلة التي تم الحصول عليها باستخدام تسلسل JSON.
ومع ذلك ، عند العودة إلى جانب الخادم من العميل ، هناك مشكلة في التاريخ. كيفية تمرير كائن تاريخ JavaScript إلى جانب الخادم؟
أولاً ، احصل على هذا عدد صحيح من خلال GetTime () في تاريخ JavaScript ، ثم تحليل عدد صحيح على الخادم و "إنشاء" في كائن C# dateTime. ربما تكون الفكرة مثل هذه ، لكنني واجهت بعض المشاكل عندما عدت في الاتجاه المعاكس.
DateTime Convertime (Long Milliontime) {Long Timetricks = New DateTime (1970 ، 1 ، 1) .Ticks + مليون مرة * 10000 ؛ إرجاع DateTime الجديد (timetricks) ؛ }وجدت النتائج التي تم الحصول عليها من خلال ConvertTime أن الوقت كان أقل 8 ساعات ، والذي حدث أنه المنطقة الزمنية للخادم ، وقت شرق المنطقة الثامنة ، مما يعني أنه يجب إضافة 8 ساعات من النانوسية ، لأن وحدة الطوابع الزمنية لـ C# هي عشرة ملايين من الثانية ، أي ساعة واحدة هي 3600 ثانية ، أي 8*3600*10000000000
لذلك تم تعديل وظيفة ConvertTime ، وذات الصحيح هي كما يلي:
Public DateTime ConvertTime (long مليون مرة) {long timetricks = New DateTime (1970 ، 1 ، 1) .Ticks + مليون مرة * 10000 + timezone.currenttimezone.getutcoffset (dateTime.now) .hours * 3600 * (long) 100000000 ؛ إرجاع DateTime الجديد (timetricks) ؛ }المثال البسيط أعلاه لتحويل تنسيقات الوقت والتاريخ من JS و C# هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.