Typescript: Membuat Tanggal baru dari tanggal string menambahkan 21 detik ke hasil

Dibuat pada 5 Jul 2019  ·  4Komentar  ·  Sumber: microsoft/TypeScript


TypeScript Version: 3.5.2


Istilah Pencarian: 3.5.2 tanggal 21 detik baru Tanggal () string Tanggal baru greenwich Prancis

Kode

Membuat tanggal baru (sebelum atau sama dengan 10 Maret 1911) dari tanggal format string menambahkan 21 detik ke tanggal yang dihasilkan.


var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 00:09:21 GMT+0009 (Central European Standard Time)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 00:09:42 GMT+0009 (Central European Standard Time)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 00:10:03 GMT+0009 (Central European Standard Time)

Perilaku yang diharapkan:
Harus kembali Senin 01 Jan 1900 00:09:21 GMT + 0009 (Waktu Standar Eropa Tengah)

Perilaku sebenarnya:
Menambahkan 21 detik setiap kali Tanggal (string) baru dipanggil.

Tautan Taman Bermain:

Masalah Terkait:

Question

Komentar yang paling membantu

\

@ j-oliveras semuanya tergantung pada opsi kompilator Anda:

temporalAnomaly

<\ / sarcasm>

Semua 4 komentar

Bagaimana ini merupakan kesalahan dengan skrip ketikan saat ini pada runtime?

Selanjutnya, toString adalah huruf kecil. Dengan Node (10.15.3), Firefox (67.0.4) konsol devtools dan Chrome (75) devtools console, ini berfungsi seperti yang diharapkan (komentar dari keluaran node):

var firstDate = new Date("1900-01-01T00:00:00.000Z").toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var secondDate = new Date(firstDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

var thirdDate = new Date(secondDate).toString()
// Mon Jan 01 1900 01:00:00 GMT+0100 (GMT+01:00)

\

@ j-oliveras semuanya tergantung pada opsi kompilator Anda:

temporalAnomaly

<\ / sarcasm>

@ Ruslan-volkov, masalah ini tidak berkaitan dengan compiler TypeScript. Selama kompilator menghasilkan kode keluaran JavaScript yang benar, yang dilakukannya, tidak ada yang salah dengan TypeScript.

Apa yang Anda lihat mungkin saja merupakan bug di mesin runtime JavaScript tertentu (atau mungkin beberapa mesin), kemungkinan besar berkaitan dengan penghitungan tanggal sebelum 1911 di Prancis ketika negara itu 9 menit dan 21 detik lebih cepat dari GMT . Tapi itu tidak ada hubungannya dengan TypeScript.

Saya juga tidak yakin apakah ada orang di dunia runtime JS yang akan sangat peduli tentang ini, mengingat semua masalah dengan membuat objek Date seperti yang Anda lakukan:

Catatan: penguraian string tanggal dengan Date konstruktor ... sangat tidak disarankan karena perbedaan dan inkonsistensi browser.

Semoga berhasil!

Terima kasih atas jawaban Anda dan waktu Anda, saya buruk!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat