Ìîíèñòà âñå çàïèñè àâòîðà
8.5. Îáúåêò Date (Äàòà)
Âî ìíîãèõ ïðèëîæåíèÿõ ïðèõîäèòñÿ îòîáðàæàòü äàòó è âðåìÿ, ïîäñ÷èòûâàòü êîëè÷åñòâî äíåé, îñòàâøèõñÿ äî çàäàííîé äàòû è ò. ï. Íåêîòîðûå ïðîãðàììû äàæå óïðàâëÿþòñÿ ïîñðåäñòâîì çíà÷åíèé äàò è âðåìåíè.  îñíîâå âñåõ îïåðàöèé, ñâÿçàííûõ ñ äàòàìè è âðåìåíåì, ëåæàò òåêóùèå ñèñòåìíûå äàòà è âðåìÿ, óñòàíîâëåííûå íà âàøåì êîìïüþòåðå. Ñî âðåìåíåì äåëà îáñòîÿò íå òàê ïðîñòî, êàê êàæåòñÿ íà ïåðâûé âçãëÿä. Âñïîìíèòå, ÷òî ñóùåñòâóþò âðåìåííûå çîíû (÷àñîâûå ïîÿñà), à òàêæå ñåçîííûå ïîïðàâêè âðåìåíè. Òàê íàïðèìåð, òåêóùåå âðåìÿ â Ñàíêò-Ïåòåðáóðãå îòëè÷àåòñÿ îò âðåìåíè â Èðêóòñêå íà 5 ÷àñîâ. Åñëè â Èðêóòñêå óæå ïîëíî÷ü, òî â Ïåòåðáóðãå åùå òîëüêî 19 ÷àñîâ. ×òîáû èìåòü âîçìîæíîñòü êîîðäèíèðîâàòü äåÿòåëüíîñòü âî âðåìåíè îðãàíèçàöèé è ôèçè÷åñêèõ ëèö â ðàçëè÷íûõ òî÷êàõ íàøåé ïëàíåòû, áûëà ââåäåíà ñèñòåìà îòñ÷åòà âðåìåíè. Îíà ñâÿçàíà ñ ìåðèäèàíîì, ïðîõîäÿùèì ÷åðåç àñòðîíîìè÷åñêóþ îáñåðâàòîðèþ â ãîðîäå Ãðèíâè÷ â Âåëèêîáðèòàíèè. Ýòó âðåìåííóþ çîíó íàçûâàþò cðåäíèì âðåìåíåì ïî Ãðèíâè÷ó (Greenwich Mean Time — GMT). Íåäàâíî êðîìå àááðåâèàòóðû GMT ñòàëè èñïîëüçîâàòü åùå îäíó — UTC (Coordinated Universal Time — Âñåîáùåå Ñêîîðäèíèðîâàííîå Âðåìÿ).
Åñëè ñèñòåìíûå ÷àñû âàøåãî êîìïüþòåðà óñòàíîâëåíû ïðàâèëüíî, òî îòñ÷åò âðåìåíè ïðîèçâîäèòñÿ â ñèñòåìå GMT. Îäíàêî íà Ïàíåëè óïðàâëåíèÿ îáû÷íî óñòàíàâëèâàåòñÿ ëîêàëüíîå âðåìÿ, ñîîòâåòñòâóþùåå âàøåìó ÷àñîâîìó ïîÿñó. Ïðè ñîçäàíèè è èçìåíåíèè ôàéëîâ íà âàøåì êîìïüþòåðå ôèêñèðóåòñÿ èìåííî ëîêàëüíîå âðåìÿ. Âìåñòå ñ òåì îïåðàöèîííàÿ ñèñòåìà çíàåò ðàçíèöó ìåæäó ëîêàëüíûì âðåìåíåì è GMT. Ïðè ïåðåìåùåíèè êîìïüþòåðà èç îäíîãî ÷àñîâîãî ïîÿñà â äðóãîé, íåîáõîäèìî èçìåíèòü óñòàíîâêè èìåííî ÷àñîâîãî ïîÿñà, à íå òåêóùåãî ñèñòåìíîãî âðåìåíè (ïîêàçàíèÿ ñèñòåìíûõ ÷àñîâ). Äàòû è âðåìÿ, ãåíåðèðóåìûå â ñöåíàðèÿõ, ñîõðàíÿþòñÿ â ïàìÿòè â ñèñòåìå GMT, íî ïîëüçîâàòåëþ âûâîäÿòñÿ, êàê ïðàâèëî, â ëîêàëüíîì âèäå.  ïðîãðàììå íà JavaScript íåëüçÿ ïðîñòî íàïèñàòü 30.10.2002, ÷òîáû ïîëó÷èòü çíà÷åíèå äàòû, ñ êîòîðûì â äàëüíåéøåì ìîæíî ïðîèçâîäèòü íåêèå îïåðàöèè. Çíà÷åíèÿ äàòû è âðåìåíè ñîçäàþòñÿ êàê ýêçåìïëÿðû ñïåöèàëüíîãî îáúåêòà Date. Ïðè ýòîì îáúåêò ñàì áóäåò «çíàòü», ÷òî íå áûâàåò 31 èþíÿ è 30 ôåâðàëÿ, à â âèñîêîñíûõ ãîäàõ 366 äíåé.
Ñîçäàíèå îáúåêòà äàòû
Îáúåêò äàòû ñîçäàåòñÿ ñ ïîìîùüþ âûðàæåíèÿ âèäà:
èìÿÎáúåêòàÄàòû = new Date([ïàðàìåòðû])
Ïàðàìåòðû íå îáÿçàòåëüíû, íà ÷òî óêàçûâàþò êâàäðàòíûå ñêîáêè. Îáðàòèòå âíèìàíèå, ÷òî èìÿÎáúåêòàÄàòû ÿâëÿåòñÿ îáúåêòîì äàòû, à íå çíà÷åíèåì êàêîãî-íèáóäü äðóãîãî òèïà (íàïðèìåð, ñòðîêîé èëè ÷èñëîì). Äëÿ ìàíèïóëÿöèé ñ îáúåêòîì äàòû ïðèìåíÿåòñÿ ìíîæåñòâî ìåòîäîâ îáúåêòà Date. Ïðè ýòîì èñïîëüçóåòñÿ òàêîé ñèíòàêñèñ:
ïåðåìåííàÿ = èìÿÎáúåêòàÄàòû.ìåòîä()
Åñëè, íàïðèìåð, îáúåêòó äàòû òðåáóåòñÿ ïðèñâîèòü íîâîå çíà÷åíèå, òî äëÿ ýòîãî èñïîëüçóåòñÿ ñîîòâåòñòâóþùèé ìåòîä:
ïåðåìåííàÿ = èìÿÎáúåêòàÄàòû.ìåòîä(íîâîå_çíà÷åíèå)
Ðàññìîòðèì â êà÷åñòâå ïðèìåðà èçìåíåíèå çíà÷åíèÿ ãîäà òåêóùåé ñèñòåìíîé äàòû:
xdate = new Date() /* ñîçäàíèå îáúåêòà, ñîäåðæàùåãî òåêóùóþ äàòó è âðåìÿ */
Year = xdate.getYear() /* â ïåðåìåííîé Year ñîäåðæèòñÿ çíà÷åíèå òåêóùåãî ãîäà */
Year = Year + 3 /* â ïåðåìåííîé Year ñîäåðæèòñÿ çíà÷åíèå,
áîëüøåå, ÷åì òåêóùèé ãîä íà 3 */
xdate.setYear(Year) /* â îáúåêòå óñòàíàâëèâàåòñÿ íîâîå
çíà÷åíèå ãîäà */
Ïðè ñîçäàíèè îáúåêòà äàòû ñ ïîìîùüþ âûðàæåíèÿ new Date(), ìîæíî óêàçàòü â êà÷åñòâå ïàðàìåòðîâ, êàêóþ äàòó è âðåìÿ ñëåäóåò óñòàíîâèòü â ýòîì îáúåêòå. Ýòî ìîæíî ñäåëàòü ïÿòüþ ñïîñîáàìè:
new Date("Ìåñÿö ää, ãããã ÷÷:ìì:ññ")
new Date("Ìåñÿö ää, ãããã")
new Date(ãã, ìì, ää, ÷÷, ìì, ññ)
new Date(ãã, ìì, ää)
new Date(ìèëèñåêóíäû)
 ïåðâûõ äâóõ ñïîñîáàõ ïàðàìåòðû çàäàþòñÿ â âèäå ñòðîêè, â êîòîðîé óêàçàíû êîìïîíåíòû äàòû è âðåìåíè. Áóêâåííûå îáîçíà÷åíèÿ îïðåäåëÿþò øàáëîí ïàðàìåòðîâ. Îáðàòèòå âíèìàíèå íà ðàçäåëèòåëè — çàïÿòûå è äâîåòî÷èÿ. Âðåìÿ óêàçûâàòü íå îáÿçàòåëüíî. Åñëè êîìïîíåíòû âðåìåíè îïóùåíû, òî óñòàíàâëèâàåòñÿ çíà÷åíèå 0 (ïîëíî÷ü). Êîìïîíåíòû äàòû îáÿçàòåëüíî äîëæíû áûòü óêàçàíû. Ìåñÿö óêàçûâàåòñÿ êàê ïîëíîå åãî àíãëèéñêîå íàçâàíèå (àááðåâèàòóðû íå äîïóñêàþòñÿ). Îñòàëüíûå êîìïîíåíòû óêàçûâàþòñÿ â âèäå ÷èñåë. Åñëè ÷èñëî ìåíüøå 10, òî ìîæíî ïèñàòü îäíó öèôðó, íå çàïèñûâàÿ âåäóùèé 0 (íàïðèìåð, 3:05:32).  òðåòüåì è ÷åòâåðòîì ñïîñîáàõ êîìïîíåíòû äàòû è âðåìåíè ïðåäñòàâëÿþòñÿ öåëûìè ÷èñëàìè, ðàçäåëåííûìè çàïÿòûìè.  ïîñëåäíåì ñïîñîáå äàòà è âðåìÿ çàäàþòñÿ öåëûì ÷èñëîì, êîòîðîå ïðåäñòàâëÿåò êîëè÷åñòâî ìèëëèñåêóíä, ïðîøåäøèõ ñ íà÷àëà 1 ÿíâàðÿ 1970 ãîäà (òî åñòü ñ ìîìåíòà 00:00:00). Êîëè÷åñòâî ìèëëèñåêóíä, îòñ÷èòàííîå îò óêàçàííîé ñòàðòîâîé äàòû, ïîçâîëÿåò âû÷èñëèòü âñå êîìïîíåíòû è äàòû, è âðåìåíè.
Ìåòîäû îáúåêòà Date
Äëÿ ÷òåíèÿ è èçìåíåíèÿ èíôîðìàöèè î äàòå è âðåìåíè, õðàíÿùåéñÿ â îáúåêòå äàòû, ñëóæàò ìåòîäû îáúåêòà Date (ñì. òàáëèöó). Íàïîìíèì, ÷òî îáúåêò äàòû ñîçäàåòñÿ ñ ïîìîùüþ âûðàæåíèÿ:
èìÿÎáúåêòàÄàòû = new Date([ïàðàìåòðû])
Çàòåì, ÷òîáû ïðèìåíèòü ìåòîä ìåòîä() ê îáúåêòó äàòû èìÿÎáúåêòàÄàòû, ñëåäóåò íàïèñàòü: èìÿÎáúåêòàÄàòû.ìåòîä([ïàðàìåòðû]). Äîâîëüíî áîëüøîå ìíîæåñòâî âñåõ ìåòîäîâ ìîæíî ðàçäåëèòü íà äâå êàòåãîðèè: ìåòîäû ïîëó÷åíèÿ çíà÷åíèé (èõ íàçâàíèÿ èìåþò ïðåôèêñ get) è ìåòîäû óñòàíîâêè íîâûõ çíà÷åíèé (èõ íàçâàíèÿ èìåþò ïðåôèêñ set).  êàæäîé êàòåãîðèè âûäåëÿþòñÿ äâå ãðóïïû ìåòîäîâ — äëÿ ëîêàëüíîãî ôîðìàòà è ôîðìàòà UTC. Ìåòîäû ïîçâîëÿþò ðàáîòàòü ñ îòäåëüíûìè êîìïîíåíòàìè äàòû è âðåìåíè (ãîäîì, ìåñÿöåì, ÷èñëîì, äíåì íåäåëè, ÷àñàìè, ìèíóòàìè, ñåêóíäàìè è ìèëèñåêóíäàìè).
Ìåòîäû îáúåêòà Date
Ìåòîä Äèàïàçîí çíà÷åíèé Îïèñàíèå
getFullYear( ) 1970–... ãîä
getYear( ) 70–... ãîä
getMonth( ) 0–11 ìåñÿö (ÿíâàðü = 0)
getDate( ) 1–31 ÷èñëî
getDay( ) 0–6 äåíü íåäåëè (âîñêðåñåíüå = 0)
getHours( ) 0–23 ÷àñû â 24-÷àñîâîì ôîðìàòå
getMinutes( ) 0–59 ìèíóòû
getSeconds( ) 0–59 ñåêóíäû
getTime( ) 0–… ìèëëèñåêóíäû ñ 1.1.70 00:00:00 GMT
getMilliseconds( ) 0–… ìèëëèñåêóíäû ñ 1.1.70 00:00:00 GMT
getUTCFullYear( ) 1970-... ãîä UTC
getUTCMonth( ) 0–11 ìåñÿö UTC (ÿíâàðü = 0)
getUTCDate( ) 1–31 ÷èñëî UTC
getUTCDay( ) 0–6 äåíü íåäåëè UTC (âîñêðåñåíüå = 0)
getUTCHours( ) 0–23 ÷àñû UTC â 24-÷àñîâîì ôîðìàòå
getUTCMinutes( ) 0–59 ìèíóòû UTC
getUTCSeconds() 0–59 ñåêóíäû UTC
getUTCMilliseconds( ) 0–.... ìèëëèñåêóíäû UTC ñ 1.1.70 00:00:00 GMT
setYear(çíà÷) 1970–... óñòàíîâêà ãîäà (÷åòûðåõçíà÷íîãî)
SetFullYear(çíà÷) 1970–… óñòàíîâêà ãîäà
setMonth(çíà÷) 0–11 óñòàíîâêà ìåñÿöà (ÿíâàðü = 0)
setDate(çíà÷) 1–31 óñòàíîâêà ÷èñëà
setDay(çíà÷) 0–6 óñòàíîâêà äíÿ íåäåëè (âîñêðåñåíüå = 0)
setHours(çíà÷) 0–23 óñòàíîâêà ÷àñîâ â 24-÷àñîâîì ôîðìàòå
setMinutes(çíà÷) 0–59 óñòàíîâêà ìèíóò
setSeconds(çíà÷) 0–59 óñòàíîâêà ñåêóíä
setMilliseconds(çíà÷) 0–… óñòàíîâêà ìèëëèñåêóíä ñ 1.1.70 00:00:00 GMT
setTime(çíà÷) 0–… óñòàíîâêà ìèëëèñåêóíä ñ 1.1.70 00:00:00 GMT
setUTCFullYear(çíà÷) 1970–… óñòàíîâêà ãîäà UTC
setUTCMonth(çíà÷) 0–11 óñòàíîâêà ìåñÿöà UTC (ßíâàðü = 0)
setUTCDate(çíà÷) 1–31 óñòàíîâêà ÷èñëà UTC
setUTCDay(çíà÷) 0–6 óñòàíîâêà äíÿ íåäåëè UTC (âîñêðåñåíüå = 0 )
setUTCHours(çíà÷) 0–23 óñòàíîâêà ÷àñîâ UTC â 24-÷àñîâîì ôîðìàòå
setUTCMinutes(çíà÷) 0–59 óñòàíîâêà ìèíóò UTC
setUTCSeconds(çíà÷) 0–59 óñòàíîâêà ñåêóíä UTC
setUTCMilliseconds(çíà÷)0–… óñòàíîâêà ìèëëèñåêóíä UTC ñ 1.1.70 00:00:00 GMT
getTimezoneOffset ( ) 0–… ðàçíèöà â ìèíóòàõ ïî îòíîøåíèþ ê GMT/UTC
toDateString( ) ñòðîêà ñ äàòîé (áåç âðåìåíè) â ôîðìàòå áðàóçåðà (IE5.5)
toGMTString( ) ñòðîêà ñ äàòîé è âðåìåíåì â ãëîáàëüíîì ôîðìàòå
toLocaleDateString( ) ñòðîêà ñ äàòîé áåç âðåìåíè â ëîêàëèçîâàííîì ôîðìàòå ñèñòåìû (NN6, IE5.5)
toLocaleString( ) ñòðîêà ñ äàòîé è âðåìåíåì â ëîêàëèçîâàííîì ôîðìàòå ñèñòåìû
toLocaleTimeString( ) ñòðîêà ñ âðåìåíåì áåç äàòû è â ëîêàëèçîâàííîì ôîðìàòå ñèñòåìû (NN6, IE5.5)
toString( ) ñòðîêà ñ äàòîé è âðåìåíåì â ôîðìàòå áðîóçåðà
toTimeString( ) ñòðîêà ñ âðåìåíåì áåç äàòû â ôîðìàòå áðîóçåðà (IE5.5)
toUTCString() ñòðîêà ñ äàòîé è âðåìåíåì â ãëîáàëüíîì ôîðìàòå
Date.parse("dateString") ïðåîáðàçîâàíèå ñòðîêè ñ äàòîé â ÷èñëî ìèëëèñåêóíä
Date.UTC(çíà÷) ïðåîáðàçîâàíèå ñòðîêè ñ äàòîé GMT â ÷èñëî
Âû÷èñëÿòü ðàçíîñòü äâóõ äàò èëè ñîçäàâàòü ñ÷åò÷èê âðåìåíè, îñòàâøåãîñÿ äî íåêîòîðîãî çàäàííîãî ñðîêà, ìîæíî ñ ïîìîùüþ ìåòîäîâ êàê äëÿ ëîêàëüíîãî ôîðìàòà, òàê è UTC. Íå ñëåäóåò ïðèìåíÿòü âûðàæåíèÿ, èñïîëüçóþùèìè ðàçëè÷íûå ôîðìàòû âðåìåíè, ïîñêîëüêó ðåçóëüòàòû ìîãóò îêàçàòüñÿ íåïðàâèëüíûìè. Ôîðìàò UTC îáû÷íî ïðèìåíÿåòñÿ â ðàñ÷åòàõ, ó÷èòûâàþùèõ ÷àñîâîé ïîÿñ. Ñëåäóåò òàêæå ó÷èòûâàòü, ÷òî íóìåðàöèÿ ìåñÿöåâ, äíåé íåäåëè, ÷àñîâ, ìèíóò è ñåêóíä íà÷èíàåòñÿ ñ 0. Äëÿ êîìïîíåíò âðåìåíè ýòî åñòåñòâåííî. Îäíàêî ïðè òàêîé íóìåðàöèè äåêàáðü îêàçûâàåòñÿ 11-ì ìåñÿöåì â ãîäó, à íå 12-ì, êàê ýòî ïðèíÿòî ïîâñåìåñòíî. Âîñêðåñåíüå (Sunday) ÿâëÿåòñÿ 0-ì äíåì íåäåëè, à íå 7-ì. Çíà÷åíèå ãîäà XX âåêà ïðåäñòàâëÿåòñÿ â äâóõçíà÷íîì ôîðìàòå êàê ðàçíîñòü ìåæäó ýòèì ãîäîì è 1900. Íàïðèìåð, 1996 ãîä ïðåäñòàâëÿåòñÿ êàê 96. Ãîäû äî 1900 è ïîñëå 1999 îáîçíà÷àþòñÿ â ÷åòûðåõçíà÷íîì ôîðìàòå. Íàïðèìåð, 2005 ãîä íóæíî òàê è ïèñàòü — 2005, ïîñêîëüêó 05 ýòî 1905 ãîä. Ìåòîä getFullYear() âîçâðàùàåò ÷åòûðåõçíà÷íîå çíà÷åíèå ãîäà.
Èçìåíåíèå ëþáîé êîìïîíåíòû äàòû ïðîèçâîäèòñÿ ñ ïîìîùüþ ñîîòâåòñòâóþùåãî ìåòîäà, íàçâàíèå êîòîðîãî íà÷èíàåòñÿ ñ ïðèñòàâêè set. Ïðè ýòîì çíà÷åíèÿ äðóãèõ êîìïîíåíò ïåðåñ÷èòûâàþòñÿ àâòîìàòè÷åñêè.
 ñëåäóþùåì ïðèìåðå ìû ñîçäàåì îáúåêò äàòû, ñîäåðæàùèé íåêîòîðóþ êîíêðåòíóþ äàòó. Çàòåì ìû óñòàíàâëèâàåì íîâîå çíà÷åíèå ãîäà. Ïðè ýòîì â îáúåêòå äàòû èçìåíÿåòñÿ è ÷èñëî. Ïðè ïîïûòêå îòîáðàçèòü çíà÷åíèå îáúåêòà äàòû îíî àâòîìàòè÷åñêè ïðåîáðàçóåòñÿ â ñòðîêó ìåòîäîì toString(). Ôîðìàò ýòîé ñòðîêè çàâèñèò îò îïåðàöèîííîé ñèñòåìû è áðàóçåðà. Íàïðèìåð, äëÿ Windows 98 è Internet Explorer 5.5+ ñòðîêà, ñîäåðæàùàÿ èíôîðìàöèþ îáúåêòà äàòû, èìååò ñëåäóþùèé âèä: Thu Oct 31 13:16:23 UTC+0300 2002, òî åñòü ÷åòâåðã, îêòÿáðü, 31, 13 ÷àñîâ 16 ìèíóò 23 ñåêóíäû Âñåîáùåãî âðåìåíè, ñêîððåêòèðîâàííîãî íà 3 ÷àñà, 2002 ãîä
Åñëè êîððåêöèþ âðåìåíè ñ ó÷åòîì ÷àñîâîãî ïîÿñà ïðîèçâîäèòü íå òðåáóåòñÿ, òî äëÿ ñòðîêîâîãî ïðåäñòàâëåíèÿ äàòû è âðåìåíè ìîæíî âîñïîëüçîâàòüñÿ ìåòîäîì toLocaleString():
mydate = new Date()
mydate.toLocaleString() // "1 äåêàáðÿ 2004 ã. 14:13:36"
 áðàóçåðàõ IE5.5+ è NN6+ ðàáîòàþò åùå äâà ìåòîäà ïðåäñòàâëåíèÿ îòäåëüíî äàòû è âðåìåíè â âèäå ñòðîêè:
mydate = new Date()
mydate.toLocaleDateString() // "1 äåêàáðÿ 2004 ã."
mydate.toLocaleTimeString() // "14:13:36"
Çàìåòèì, ÷òî ôîðìàò ïðåäñòàâëåíèÿ äàòû è âðåìåíè, îáåñïå÷èâàåìûé ìåòîäàìè toLocalDateString() è toLocalTimeString(), çàâèñèò îò íàñòðîåê îïåðàöèîííîé ñèñòåìû è áðàóçåðà. Åñëè âû áóäåòå èñïîëüçîâàòü ýòè ìåòîäû äëÿ âûâîäà äàòû è âðåìåíè íà Web-ñòðàíèöó, òî îíè áóäóò âûãëÿäåòü òàê, êàê ïîëüçîâàòåëü ïðèâûê èõ âèäåòü íà ñâîåì êîìïüþòåðå. Ñ äàòîé èíîãäà ïðèõîäèòñÿ âûïîëíÿòü ðàçëè÷íûå âû÷èñëåíèÿ, òàêèå, êàê îïðåäåëåíèå äàòû ÷åðåç çàäàííîå êîëè÷åñòâî äíåé îò òåêóùåé, èëè êîëè÷åñòâî äíåé ìåæäó äâóìÿ äàòàìè. Âîò çäåñü êàê ðàç è òðåáóåòñÿ ïðåäâàðèòåëüíûé ïîäñ÷åò ìèëëèñåêóíä, ñîäåðæàùèõñÿ â ìèíóòå, ÷àñå, ñóòêàõ è ò. ä.
Ïðèìåðû:
Îïðåäåëèì äàòó, êîòîðàÿ íàñòóïèò ÷åðåç íåäåëþ îòíîñèòåëüíî òåêóùåé:
week = 1000*60*60*24*7 /* êîëè÷åñòâî ìèëëèñåêóíä â íåäåëå — 604800000 */
mydate = new Date() // îáúåêò äàòû ñ òåêóùåé äàòîé
mydate_ms = mydate.getTime() /* òåêóùàÿ äàòà, ïðåäñòàâëåííàÿ êîëè÷åñòâîì ìèëëèñåêóíä îò 1.01.1970 00:00:00 */
mydate_ms += week // maydate_ms = mydate_ms + week
mydate.setTime(mydate_ms) /* óñòàíîâêà íîâîé äàòû â îáúåêòå mydate */
newdate = mydate.toLocaleString() /* íîâàÿ äàòà â âèäå ñòðîêè */
Îïðåäåëèì êîëè÷åñòâî äíåé ìåæäó äâóìÿ äàòàìè, íàïðèìåð, 10 ôåâðàëÿ 2004 è 5 ìàðòà 2004. Äëÿ ýòîãî ñîçäàäèì ñíà÷àëà äâà ñîîòâåòñòâóþùèõ îáúåêòà äàòû:
date1 = new Date(2004,01,10)
date2 = new Date(2004,02,5)
Ïåðåìåííûå date1 è date2 ñîäåðæàò äëèííûå ñòðîêè, ñîäåðæàùèå äàòû (íàïðèìåð, Mon Feb 10 00:00:00 UTC+0300 2003). ×òîáû ïåðåâåñòè èõ â êîëè÷åñòâà ìèëëèñåêóíä, âîñïîëüçóåìñÿ ìåòîäîì parse() îáúåêòà Date. Çàòåì âû÷èñëèì ðàçíîñòü Date.parse(date2) è Date.parse(date1) è ðàçäåëèì åå íà êîëè÷åñòâî ìèëëèñåêóíä â îäíèõ ñóòêàõ:
days = (Date.parse(date2) - Date.parse(date1))/1000/60/60/24 // ðåçóëüòàò: 24