2010-01-06 10 views

Odpowiedz

263
var dateObj = new Date(); 
var month = dateObj.getUTCMonth() + 1; //months from 1-12 
var day = dateObj.getUTCDate(); 
var year = dateObj.getUTCFullYear(); 

newdate = year + "/" + month + "/" + day; 

lub można ustawić nową datę i dać Powyższe wartości

+46

Pamiętaj tylko: styczeń = 0, luty = 1 i tak dalej. –

+4

Jaka jest różnica między 'getMonth' i' getUTCMonth'? – user198729

+7

UTC zwróci czas uniwersalny. jeśli chcesz korzystać z czasu lokalnego getMonth – Hiyasat

11

Użyj Data dostać metod.

http://www.tizag.com/javascriptT/javascriptdate.php

http://www.htmlgoodies.com/beyond/javascript/article.php/3470841

var dateobj= new Date() ; 
var month = dateobj.getMonth() + 1; 
var day = dateobj.getDate() ; 
var year = dateobj.getFullYear(); 
+4

Miesiące od JavaScript Obiekty daty są indeksowane od zera. Pamiętaj, aby dodać 1 do niego, w przeciwnym razie grudzień zostanie listopad; Listopad staje się październikiem i tak dalej. – roosteronacid

+1

@Aseem Powinien to być miesiąc, który potrzebuje +1 –

81
var dt = new Date(); 

dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate(); 

Ponieważ indeks miesięcy są 0 oparty trzeba zwiększać ją o 1.

Edytuj

Pełną listę aktualnych funkcji obiektowych zobaczyć

Date

getMonth() 

Zwraca miesiąc (0-11) w określonej daty stosownie do czasu lokalnego.

getUTCMonth() 

Powoduje zwrócenie miesiąca (0-11) w podanej dacie zgodnie z czasem uniwersalnym.

+5

Needs parens. W przeciwnym razie październik pojawi się jako miesiąc 91 (od 9 + 1 = 91 w stringland) – rob

+5

Powinien być dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate(); –

20

Proponuję użyć Moment.js http://momentjs.com/

Następnie można zrobić:

moment(new Date()).format("YYYY/MM/DD"); 

Uwaga: tak naprawdę nie trzeba dodawać new Date(), jeśli chcesz bieżący TimeDate, dodałem go tylko jako odniesienie, do którego można przekazać obiekt daty. dla bieżącego TimeDate to działa również:

moment().format("YYYY/MM/DD"); 
8

EUROPE (angielski/hiszpański) FORMAT
I trzeba uzyskać bieżący dzień też, można użyć tego.

function getFormattedDate(today) 
{ 
    var week = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); 
    var day = week[today.getDay()]; 
    var dd = today.getDate(); 
    var mm = today.getMonth()+1; //January is 0! 
    var yyyy = today.getFullYear(); 
    var hour = today.getHours(); 
    var minu = today.getMinutes(); 

    if(dd<10) { dd='0'+dd } 
    if(mm<10) { mm='0'+mm } 
    if(minu<10){ minu='0'+minu } 

    return day+' - '+dd+'/'+mm+'/'+yyyy+' '+hour+':'+minu; 
} 

var date = new Date(); 
var text = getFormattedDate(date); 


* Dla formatu hiszpańskiego, tylko przetłumaczyć zmiennej tygodnia.

var week = new Array('Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'); 


wyjściowa: poniedziałek - 16/11/2015 14:24

40
new Date().toISOString() 
"2016-02-18T23:59:48.039Z" 
new Date().toISOString().split('T')[0]; 
"2016-02-18" 
new Date().toISOString().replace('-', '/').split('T')[0].replace('-', '/'); 
"2016/02/18" 

new Date().toLocaleString().split(',')[0] 
"2/18/2016" 
6

informacji

Jeśli pożądany jest miesiąc 2 cyfry i data (2016/01/01 vs 2016/1/1)

kod

var dateObj = new Date(); 
var month = ('0' + (dateObj.getMonth() + 1)).slice(-2); 
var date = ('0' + dateObj.getDate()).slice(-2); 
var year = dateObj.getFullYear(); 
var shortDate = year + '/' + month + '/' + date; 
alert(shortDate); 

wyjście

2016/10/06

skrzypce

https://jsfiddle.net/Hastig/1xuu7z7h/

kredytowej

Więcej informacji zi credit to this answer

więcej

Aby dowiedzieć się więcej o .slicetry it yourself editor na w3schools pomógł mi lepiej zrozumieć, w jaki sposób z niego korzystać.

1

można po prostu użyć tego kodu w jednej linijce, aby uzyskać datę w formacie rok-miesiąc-date

var date = new Date().getFullYear() + "-" + new Date().getMonth() + 1 + "-" + new Date().getDate(); 
-1

używam tego, który działa, jeśli przejdzie to data obj lub js timestamp:

getHumanReadableDate: function(date) { 
    if (date instanceof Date) { 
     return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear(); 
    } else if (isFinite(date)) {//timestamp 
     var d = new Date(); 
     d.setTime(date); 
     return this.getHumanReadableDate(d); 
    } 
} 
2

Przyjęta odpowiedź, 1 stycznia będzie wyświetlana w następujący sposób: 2017/1/1.

Jeśli wolisz 2017/01/01, można użyć:

var dt = new Date(); 
var date = dt.getFullYear() + '/' + (((dt.getMonth() + 1) < 10) ? '0' : '') + (dt.getMonth() + 1) + '/' + ((dt.getDate() < 10) ? '0' : '') + dt.getDate(); 
Powiązane problemy