Având acest șir 30/11/2011
. Vreau să-l convertească la data de obiect.
Am nevoie pentru a utiliza :
Date d = new Date(2011,11,30); /* months 1..12? */
sau
Date d = new Date(2011,10,30); /* months 0..11? */
?
Sintaxa este după cum urmează:
new Date(year, month [, day, hour, minute, second, millisecond ])
deci
Date d = new Date(2011,10,30);
este corect; zi, oră, minut, secundă, milisecundă sunt opționale.
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date
Există mai multe metode de creare a data cum sa discutat mai sus. Eu nu va repeta aceleași lucruri. Aici este mic metodă de a converti Șirul de la Data în Java Script, dacă asta este ceea ce cauti,
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;
}
Întotdeauna, pentru orice problemă referitoare la JavaScript spec în practică, eu va recomand la Mozilla Developer Network, lor JavaScript referință.
După cum se afirmă în tema Data obiect despre argumentul varianta ai folosi:
new Date(year, month, day [, hour, minute, second, millisecond ])
Și despre luni parametru:
luni valoare Întreagă reprezentând lună, începând cu 0 pentru ianuarie-11 decembrie.
În mod clar, atunci, ar trebui să utilizați lună numărul 10 pentru luna noiembrie.
P. S.: motivul pentru Care am recomanda MDN este corectitudinea, explicație bună a lucrurilor, exemple, compatibilitate browser-ul grafic.
Pot't cred că javascript nu este't mai mult în concordanță cu parsarea date. Și am auzit implicit atunci când nu există nici o zona de fus orar se va schimba de la UTC la nivel local-sper că web-ul este pregătit ;)
Prefer să Javascript face munca grea atunci când vine vorba de parsare date. Cu toate acestea, ar fi frumos să se ocupe de zona de fus orar local problema destul de transparent. Cu aceste lucruri în minte, aici este o funcție a face cu actualul status-quo-și atunci când Javascript schimbări acesta va funcționa în continuare, dar apoi pot fi eliminate (cu un pic de timp pentru oameni pentru a prinde cu browsere mai vechi/nodejs, desigur).
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;
}
Avem nevoie de un obiect date indiferent; deci createone. Dacă există un fus orar, am terminat. În caz contrar, de a crea o zona de fus orar local șir folosind +hh:mm format (mai acceptat decât +hhmm).