mmm, tetapi bagaimana cara memeriksa strDate memiliki nilai yang tidak valid seperti "30.30.2000"?
Dr. No
2
@ user674887, Anda dapat membandingkan nilai setelah penguraian. misalnya dateParts [1] -1 == date.getMonth ()
Jonathan Fingland
Jika Anda memiliki tanggal kedua TIME seperti ini: "2014-05-20T16: 43: 56.71-06: 00" var partesFecha = solicitud.CreatedDate.split ("T") [0] .split ("-"); var CreatedDate = Tanggal baru (partesFecha [0], (partesFecha [1] - 1), partesFecha [2]); Tanggal pengambilan pertama sebelum T dan kemudian tahun, bulan dan hari dibagi.
RolandoCC
tidak percaya Anda harus menggunakan split untuk mendapatkan format tanggal yang diharapkan dalam javascript
Claudiu Creanga
Adakah yang merasa aneh bahwa artikel referensi Mozilla pada objek Tanggal itu sendiri mengatakannya "Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."?
NanoWizard
51
Jika Anda menggunakan jQuery UI, Anda dapat memformat tanggal apa pun dengan:
<html><body>Your date formated:<span id="date1"></span><br/></body></html>
+1 Saya tidak melihat sebagai benar-benar di luar cakupan, JavaScript dan JQuery adalah kombinasi yang umum.
djna
Jawaban tidak harus bergantung pada pustaka yang tidak diberi tag atau disebutkan di OP. Menggunakan jQuery sebagai pustaka tanggal sangat berlebihan ketika fungsi 3 baris dapat melakukan pekerjaan yang sama.
RobG
9
Kami menggunakan kode ini untuk memeriksa apakah string adalah tanggal yang valid
Itu tidak menguji tanggal yang valid sama sekali, itu hanya menguji apakah konstruktor Tanggal dapat membuat tanggal yang valid dari input. Keduanya bukanlah hal yang sama.
Untuk kebanyakan kasus, MomentJS berlebihan, karena menggunakan JavaScript murni hanya membutuhkan ratusan byte, sementara MomentJS adalah 12,4kb gzip. Nyaman untuk pengembang tetapi memperlambat situs web. Tidak layak.
Raptor
3
Saya telah menggunakan kode berikut di IE. (Kompatibel dengan IE8)
var dString ="2013.2.4";var myDate =newDate( dString.replace(/(\d+)\.(\d+)\.(\d+)/,"$2/$3/$1"));
alert("my date:"+ myDate );
@ Duke— new Date(Date.parse('02.02.1999'))akan memberikan hasil yang identik dengan new Date('02.02.1999'), termasuk Invalid Date di beberapa browser. Menggunakan parser built-in bisa dibilang cara terburuk untuk mengurai stempel waktu.
RobG
2
Fungsi ini juga menangani tanggal 29.2.2001 yang tidak valid.
function parseDate(str){var dateParts = str.split(".");if(dateParts.length !=3)returnnull;var year = dateParts[2];var month = dateParts[1];var day = dateParts[0];if(isNaN(day)|| isNaN(month)|| isNaN(year))returnnull;var result =newDate(year,(month -1), day);if(result ==null)returnnull;if(result.getDate()!= day)returnnull;if(result.getMonth()!=(month -1))returnnull;if(result.getFullYear()!= year)returnnull;return result;}
Anda seharusnya menggunakan javascript bukan jquery karena tidak ada tag jquery
Sagar
bahagia ... artinya hanya memahami senario
Bachas
Baik. Saya rasa teladan Anda tidak berbeda dengan yang diberikan oleh Martin Staufcik. Faktanya jawabannya memiliki logika tambahan untuk menangani tanggal yang tidak valid.
Sagar
Martin Staufcik menangani kondisi tersebut yang tidak terjadi secara umum. dapatkah Anda memberi saya kalender apa pun yang dapat memberikan invalidates. mengapa kita harus menulis kode yang begitu panjang ketika kita dapat menangani dengan cara yang singkat. Alangkah baiknya jika Martin Staufcik juga memberikan tanggal dan waktu untuk menangani.
Jawaban:
Lihat:
Kode:
sumber
"Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies."
?Jika Anda menggunakan jQuery UI, Anda dapat memformat tanggal apa pun dengan:
http://jsfiddle.net/mescalito2345/ND2Qg/14/
sumber
Kami menggunakan kode ini untuk memeriksa apakah string adalah tanggal yang valid
sumber
ref: http://momentjs.com/docs/#/parsing/string/
Jika Anda menggunakan moment.js, Anda dapat menggunakan mode "string" + "format"
ex:
sumber
Saya telah menggunakan kode berikut di IE. (Kompatibel dengan IE8)
sumber
Pengembang ASP.NET memiliki pilihan bawaan yang praktis ini (MS JS harus disertakan di halaman):
http://msdn.microsoft.com/en-us/library/bb397521%28v=vs.100%29.aspx
sumber
Gunakan objek Tanggal:
Berikan: 917902800000
sumber
new Date(Date.parse('02.02.1999'))
new Date(Date.parse('02.02.1999'))
untuk Javascriptnew Date(Date.parse('02.02.1999'))
akan memberikan hasil yang identik dengannew Date('02.02.1999')
, termasuk Invalid Date di beberapa browser. Menggunakan parser built-in bisa dibilang cara terburuk untuk mengurai stempel waktu.Fungsi ini juga menangani tanggal 29.2.2001 yang tidak valid.
sumber
Anda dapat memformat tanggal hanya dengan membuat jenis kode ini. Dalam javascript.
sumber