Hvordan lage et datobjekt fra streng i JavaScript


Har denne strengen 30/11/2011. Jeg vil konvertere den til et datobjekt.

Trenger jeg å bruke :

Date d = new Date(2011,11,30);   /* months 1..12? */

eller

Date d = new Date(2011,10,30);   /* months 0..11? */

?

Svar #1

var d = new Date(2011,10,30);

siden måneder er indeksert fra 0 i js.

Svar #2

Du vil definitivt bruke det andre uttrykket siden måneder i JS er nummerert fra 0.

Du kan også bruke Date.parse-metoden, men den bruker et annet datoformat:

var timestamp = Date.parse("11/30/2011");
var dateObject = new Date(timestamp);

Svar #3

Syntaksen er som følger:

new Date(year, month [, day, hour, minute, second, millisecond ])

så

Date d = new Date(2011,10,30);

er korrekt; dag, time, minutt, sekund, millisekund er valgfrie.

https://developer.mozilla.org/no/docs/Web/JavaScript/Reference/Objekter/Date

Svar #4

Det finnes flere metoder for å lage dato som diskutert ovenfor. Jeg vil ikke gjenta det samme. Her er en liten metode for å konvertere en streng til dato i JavaScript hvis det er det du leter etter,

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;
}

Svar #5

Veldig enkelt:

var dt=new Date("2011/11/30");

Datoen bør være i ISO-format yyyy/MM/dd.

Svar #6

Først hent ut strengen slik

var dateString = str.match(/^(\d{2})\/(\d{2})\/(\d{4})$/);

Så,

var d = new Date( dateString[3], dateString[2]-1, dateString[1] );

Svar #7

Alltid, for ethvert problem angående JavaScript-spesifikasjonen i praksis, vil jeg sterkt anbefale Mozilla Developer Network og deres JavaScript-referanse.

Som det står i emnet om Date-objektet om argumentvarianten du bruker:

new Date(year, month, day [, hour, minute, second, millisecond ])

Og om månedsparameteren:

måned Heltallsverdi som representerer måneden, med start fra 0 for januar til 11 for desember.

Klart, da bør du bruke månedsnummer 10 for november.

P.S.: Grunnen til at jeg anbefaler MDN er korrektheten, gode forklaringer, eksempler og nettleserkompatibilitetsdiagram.

Relaterte artikler