Pada sore hari, kami mengalami masalah dalam mengkonversi format tanggal MVC dan EXTJS. Hasil dari serialisasi objek datetime dari sisi server .NET adalah format string, seperti '/tanggal (1335258540000)/' .
Integer 1335258540000 sebenarnya merupakan interval milidetik antara 1 Januari 1970 dan datetime ini. Melalui JavaScript, gunakan fungsi eval untuk mengonversi string tanggal ini menjadi objek tanggal dengan zona waktu, sebagai berikut
Gunakan var date = eval ('baru' + eval ('/tanggal (1335258540000)/'). Sumber) untuk mendapatkan objek JS
Periksa dengan jelas melalui peringatan (tanggal).
Sel 24 Apr 17:09:00 UTC+0800 2012
Di atas adalah string yang secara otomatis diperoleh dengan membuat serial tanggal C# json. Anda juga dapat menulis fungsi untuk mendapatkan nomor ini melalui C#, misalnya
publik long millitimestamp (datetime thedate) {datetime d1 = datetime baru (1970, 1, 1); Datetime d2 = thedate.touniversaltime (); TimesPan TS = New TimesPan (D2.ticks - D1.ticks); return (long) ts.totalmilliseconds; }Fungsi di atas sama dengan integer dalam string yang diperoleh dengan menggunakan serialisasi JSON.
Namun, ketika kembali ke sisi server dari klien, ada masalah dengan tanggal. Bagaimana cara lulus objek tanggal JavaScript kembali ke sisi server?
Pertama, dapatkan bilangan bulat ini melalui gettime () pada tanggal JavaScript, dan kemudian parsing bilangan bulat di server dan 'buat' itu menjadi objek datetime C#. Idenya mungkin seperti ini, tetapi saya mengalami beberapa masalah ketika saya kembali ke arah yang berlawanan.
public DateTime ConvertTime (Long MillionTime) {long timeTricks = datetime baru (1970, 1, 1) .ticks + Milliontime * 10000; mengembalikan datetime baru (timetricks); }Hasil yang diperoleh melalui ConvertTime menemukan bahwa waktunya lebih sedikit 8 jam, yang kebetulan adalah zona waktu server, waktu zona kedelapan timur, yang berarti bahwa 8 jam nanodetik harus ditambahkan, karena unit cap waktu C# adalah sepuluh juta detik, satu jam adalah 3600 detik, yaitu, 8*3600*100000000000000000000
Jadi fungsi ConvertTime dimodifikasi, yang benar adalah sebagai berikut:
Public DateTime Converttime (Long Milliontime) {Long TimeTricks = Datetime baru (1970, 1, 1) .ticks + Milliontime * 10000 + timezone.currenttimezone.getutcoffset (DateTime.now) .hours * 3600 * (Long) 100000000; mengembalikan datetime baru (timetricks); }Contoh sederhana di atas dari konversi format waktu dan tanggal JS dan C# adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.