Setelah ini string 30/11/2011
. Saya ingin mengubahnya menjadi objek tanggal.
Apakah saya harus menggunakan :
Date d = new Date(2011,11,30); /* months 1..12? */
atau
Date d = new Date(2011,10,30); /* months 0..11? */
?
Sintaksnya adalah sebagai berikut:
new Date(year, month [, day, hour, minute, second, millisecond ])
jadi
Date d = new Date(2011,10,30);
benar, hari, jam, menit, detik, milidetik adalah opsional.
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
Ada beberapa metode untuk menciptakan upload seperti yang dibahas di atas. Aku tidak akan mengulangi hal-hal yang sama. Berikut ini adalah kecil metode untuk mengkonversi String untuk Tanggal dalam Java Script jika itu adalah apa yang anda cari,
function compareDate(str1){
// str1 format should be dd/mm/yyyy. Separator can be anything e.g. / or -. It wont effect
var dt1 = parseInt(str1.substring(0,2));
var mon1 = parseInt(str1.substring(3,5));
var yr1 = parseInt(str1.substring(6,10));
var date1 = new Date(yr1, mon1-1, dt1);
return date1;
}
Selalu, untuk setiap masalah mengenai JavaScript spec praktis, saya akan sangat merekomendasikan Mozilla Developer Network, dan mereka JavaScript reference.
Seperti negara-negara di topik objek Tanggal tentang argumen varian yang anda gunakan:
new Date(year, month, day [, hour, minute, second, millisecond ])
Dan tentang bulan parameter:
bulan nilai Integer yang mewakili bulan, dimulai dengan 0 untuk januari hingga 11 desember.
Jelas, kemudian, anda harus menggunakan nomor 10 bulan untuk bulan November.
P. S.: alasan mengapa saya merekomendasikan MDN adalah kebenaran, baik penjelasan dari hal-hal, contoh, dan kompatibilitas browser grafik.
Saya dapat't percaya javascript isn't lebih konsisten dengan parsing tanggal. Dan aku mendengar default bila tidak ada zona waktu akan berubah dari UTC lokal -- semoga web ini disiapkan ;)
Saya lebih memilih untuk membiarkan Javascript melakukan angkat berat ketika datang untuk parsing tanggal. Namun akan lebih baik untuk menangani zona waktu lokal masalah yang cukup transparan. Dengan kedua hal ini dalam pikiran, berikut adalah fungsi untuk melakukan itu dengan status quo saat ini -- dan ketika Javascript perubahan itu akan tetap bekerja tapi kemudian dapat dihapus (dengan sedikit waktu untuk orang-orang untuk mengejar ketinggalan dengan browser lama/nodejs tentu saja).
function strToDate(dateStr)
{
var dateTry = new Date(dateStr);
if (!dateTry.getTime())
{
throw new Exception("Bad Date! dateStr: " + dateStr);
}
var tz = dateStr.trim().match(/(Z)|([+-](\d{2})\:?(\d{2}))$/);
if (!tz)
{
var newTzOffset = dateTry.getTimezoneOffset() / 60;
var newSignStr = (newTzOffset >= 0) ? '-' : '+';
var newTz = newSignStr + ('0' + Math.abs(newTzOffset)).slice(-2) + ':00';
dateStr = dateStr.trim() + newTz;
dateTry = new Date(dateStr);
if (!dateTry.getTime())
{
throw new Exception("Bad Date! dateStr: " + dateStr);
}
}
return dateTry;
}
Kita membutuhkan objek tanggal, terlepas; jadi createone. Jika ada timezone, kita selesai. Jika tidak, membuat zona waktu lokal string menggunakan format jj:mm (lebih diterima dari +hhmm).