Jak uzyskać aktualną datę w JavaScript?
Jak uzyskać aktualną datę w JavaScript?
30 answers
Użyj new Date()
do wygenerowania nowego Date
obiektu zawierającego bieżącą datę i czas.
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd = '0'+dd
}
if(mm<10) {
mm = '0'+mm
}
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
To da ci dzisiejszą datę w formacie mm/dd / RRRR.
Po prostu zmień today = mm +'/'+ dd +'/'+ yyyy;
na dowolny format.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 09:24:10
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Użyj opcji replace
, jeśli zamierzasz ponownie użyć zmiennej utc
, takiej jak new Date(utc)
, ponieważ Firefox i Safari nie rozpoznają daty z myślnikami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-27 18:47:20
Aktualizacja!, Przewiń W Dół
Jeśli chcesz coś prostego ładnego dla użytkownika końcowego ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
var objToday = new Date(),
weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
dayOfWeek = weekday[objToday.getDay()],
domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
curMonth = months[objToday.getMonth()],
curYear = objToday.getFullYear(),
curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;
document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>
UBBER UPDATE Po długim zwlekaniu, w końcu GitHubbed i zaktualizowałem to o ostateczne rozwiązanie, którego używałem dla siebie. Ma nawet kilka ostatnich edycji, aby było słodsze! Jeśli szukasz starego jsFiddle, zobacz to .
Ta aktualizacja wchodzi 2 smaki, wciąż stosunkowo małe, choć nie tak małe jak moja powyższa, oryginalna odpowiedź. Jeśli chcesz bardzo małe, idź z tym.
również zauważ: to jest jeszcze mniej nadęty niż chwila.js. Chwila.js jest ładny, imo, ma wiele świeckich metod, które wymagają nauki, jakby to był język. Mój tutaj używa tego samego wspólnego formatu co PHP: date.
Szybko Linki
- Data.format./ min.js 5.08 KB
- dateFormat./ min.js 4.16 KB
Smak 1
new Date().format(String)
Mój Osobisty Faworyt. Znam tabu, ale działa świetnie na obiekcie daty. Po prostu pamiętaj o innych modach, które możesz mieć do obiektu daty.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Smak 2
dateFormat(Date, String)
Bardziej tradycyjna metoda all-in-one. Posiada wszystkie możliwości poprzedniego, ale jest wywoływany metodą z datą param.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
Bonusowy smak (wymaga jQuery)
$.date(Date, String)
Zawiera to znacznie więcej niż tylko prostą opcjęformat
. Rozszerza obiekt base Date i zawiera metody takie jakaddDays
. Aby uzyskać więcej informacji, zobacz Git.
W tym modzie znaki formatu są inspirowane PHP: date. Pełna lista znajduje się w mojej README
Ten mod ma również znacznie dłuższy lista gotowych formatów. Aby użyć gotowego formatu, po prostu wprowadź jego nazwę klucza. dateFormat(new Date(), 'pretty-a');
- 'compound'
- 'commonLogFormat' = = 'd / M / Y: G: i: s'
- 'exif' = = 'Y: m: d G: i: s'
- 'isoYearWeek' = = 'Y\ \ WW'
- 'isoYearWeek2' = = 'Y - \ \ WW'
- 'isoYearWeekDay' = = 'Y\ \ WWj'
- 'isoYearWeekDay2' = = 'Y - \ \ WW-j'
- 'mySQL' == 'Y-M-d h: i: s'
- 'postgreSQL' = = 'Y. z'
- 'postgreSQL2' = = ' Yz '
- 'mydło' == "Y-m-D\ \ TH: i: s. u"
- 'soap2' = = 'Y-m-D\ \ TH: i: s. uP'
- 'unixTimestamp' == '@U'
- 'xmlrpc' = = 'Ymd\\TG: i: s'
- 'xmlrpcCompact' = = 'Ymd\ \ tGis'
- 'wddx' = = 'Y-n-j\ \ TG: i: s'
- 'stałe'
- "amerykański" = = "F j Y"
- 'AMERICANSHORT' == 'm/d/Y'
- 'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
- 'ATOM' = = 'Y-m-D\ \ TH: I: sP'
- 'COOKIE' = = 'l d-M-Y H:I:s T'
- "Europejski" = = " j F Y '
- 'EUROPEANSHORT' == 'd.M.Y'
- 'EUROPEANSHORTWTIME' == 'd.M.Y H:i:s'
- 'ISO8601' = = 'Y-m-D\ \ TH: I: sO'
- ' LEGAL '= = 'j F Y'
- 'RFC822' = = 'D D M y H: i: s O'
- 'RFC850' = = 'l d-M-y H:I: s T'
- 'RFC1036' = = 'D D M y H: i: s O'
- 'RFC1123' = = 'D D M Y H: i: s O'
- 'RFC2822' = = 'D D M Y H: i: s O'
- 'RFC3339' == 'Y-M-D\ \ TH: I: sP'
- 'RSS' = = 'D D M Y H: i: s O'
- 'W3C' == "Y-m-D\ \ TH: I: sP"
- "pretty"
- 'pretty-a' = = 'g:i.sA l jS \ \ o \ \ f F Y'
- 'pretty-b' = = 'g: iA l jS \ \ o \ \ f F Y'
- 'pretty-c' == 'n/d/Y g:iA'
- 'pretty-d' == 'n/d/Y'
- 'pretty-e' == 'F jS - g:ia'
- 'pretty-f' == 'g:iA'
Jak możesz zauważyć, możesz użyć podwójnego \
, aby uciec od postaci.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-20 14:24:54
Jeśli chcesz tylko datę bez informacji o czasie, użyj:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 15:23:03
Spróbuj tego:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Wynik będzie taki jak
15/2/2012
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-10 11:20:31
Jak najkrótszy.
Aby uzyskać format podobny do "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Aby uzyskać format podobny do "8/3/2018":
let today = new Date().toLocaleDateString()
console.log(today)
Możesz również przekazać locale jako argument, na przykład toLocaleDateString("sr")
, itd.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-05 21:09:24
Jeśli szukasz bardziej szczegółowej kontroli nad formatami dat, zdecydowanie polecam sprawdzenie momentjs. Wspaniała biblioteka - i tylko 5KB. http://momentjs.com/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-12 01:03:28
Możesz użyć chwili.js: http://momentjs.com/
var m = moment().format("DD/MM/YYYY");
document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 15:28:51
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Rozbić na etapy:
(new Date()).toString()
daje " Pią Cze 28 2013 15: 30: 18 GMT-0700 (PDT)"(new Date()).toString().split(' ')
dzieli powyższy łańcuch na każdą spację i zwraca tablicę w następujący sposób: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", " (PDT)"](new Date()).toString().split(' ').splice(1,3).join(' ')
pobiera drugą, trzecią i czwartą wartość z powyższej tablicy, łączy je ze spacjami i zwraca łańcuch "Jun 28 2013"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-08 15:22:27
var date = new Date().toLocaleDateString("en-US");
Można również wywołać metodę toLocaleDateString
z dwoma parametrami:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-22 17:18:02
To działa za każdym razem:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
document.write(today);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-05 19:07:18
Czystsza, prostsza wersja:
new Date().toLocaleString();
Wynik zmienia się zgodnie z ustawieniami użytkownika :
2/27/2017, 9:15:41 AM
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-27 07:19:40
Możesz użyć Date.biblioteka JS , która rozszerza obiekt Date, dzięki czemu możesz mieć .metoda today ().
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 13:00:15
Jeśli jesteś zadowolony z formatu RRRR-MM-DD, to również zadziała.
new Date().toISOString().split('T')[0]
2018-03-10
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-10 14:48:28
Można uzyskać bieżącą datę wywołania metody statycznej teraz w następujący sposób:
var now = Date.now()
Odniesienie:
Https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-11 20:03:58
Odpowiedź Varuna nie uwzględnia TimezoneOffset. Oto wersja, która robi:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
TimezoneOffset
jest minutami, podczas gdy konstruktor daty zajmuje milisekundy, a więc mnożenie przez 60000
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:27
Jeśli chcesz mieć prosty format DD/MM/YYYY
, właśnie wymyśliłem takie proste rozwiązanie, chociaż nie zawiera brakujących zer.
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-30 08:10:36
new Date().toDateString();
Wynik:
"Śro Lut 03 2016"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-03 12:08:37
Najkrótsza odpowiedź to: new Date().toJSON().slice(0,10)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-01 21:43:24
new Date().toISOString().slice(0,10);
Też by zadziałało
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-01 16:19:05
Możesz użyć tego
<script>
function my_curr_date() {
var currentDate = new Date()
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var my_date = month+"-"+day+"-"+year;
document.getElementById("dateField").value=my_date;
}
</script>
HTML to
<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-19 19:17:38
Jeśli używasz jQuery. Spróbuj tego linera:
$.datepicker.formatDate('dd/mm/yy', new Date());
Oto konwencja formatowania daty
- d-Dzień miesiąca (bez wiodącego zera)
- dd-dzień miesiąca (dwucyfrowy)
- o-dzień roku (bez zer wiodących)
- oo-dzień roku (trzycyfrowy)
- d - Skrót Nazwy dnia
- DD-nazwa dnia
- m-miesiąc roku (bez wiodącego zera)
- mm-miesiąc roku (dwucyfrowy)
- m - skrót nazwy miesiąca
- MM - nazwa miesiąca długość
- y-rok (dwucyfrowy)
- yy-rok (czterocyfrowy)
Tutaj jest odniesienie do jQuery datepicker
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-01 11:50:51
Rozwiązanie jednoliniowe JS:
Tl;dr
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
edge, FF i ChrometodaysDate = "2/7/2017"
"Działa" * w IE10 +
EDIT 2/7/2017
Dowiedziałem się, że IE10 i IE Edge działają nieco inaczej.. pomyśl.
z new Date(Date.now()).toLocaleString()
jako wejściem,
IE10 zwraca:
"Tuesday, February 07, 2017 2:58:25 PM"
Mógłbym napisać dużą długą funkcję i FTFY. Ale naprawdę powinieneś użyć chwili.js dla tych rzeczy. mój skrypt tylko oczyszcza to i daje Rozszerzony tradycyjny zapis US: > todaysDate = "March 06, 2017"
IE EDGE zwraca:
"2/7/2017 2:59:27 PM"
Oczywiście, że to nie może być takie proste. łańcuch daty Edge ' a ma niewidoczne znaki "•" między każdym widocznym. więc nie tylko będziemy teraz sprawdzać, czy pierwszy znak jest liczbą, ale pierwsze 3 znaki, ponieważ okazuje się, że każdy pojedynczy znak w całym zakresie dat w końcu będzie kropką lub ukośnikiem w pewnym momencie. Więc do trzymaj rzeczy proste, po prostu .slice () pierwsze trzy znaki (mały bufor przed przyszłymi wybrykami), a następnie sprawdzanie liczb. Należy prawdopodobnie zauważyć, że te niewidoczne kropki mogą potencjalnie utrzymywać się w kodzie. Może dokopię się do tego, jeśli masz większe plany niż wydrukowanie tego Sznurka.
∴ updated one-liner:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
To do bani czytać. A może:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
ORYGINALNA ODPOWIEDŹ
I ' ve got a one-liner for you:
new Date(Date.now()).toLocaleString().split(', ')[0];
I [1]
da ci czas dnia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 18:55:49
Jako toISOString()
zwróci tylko bieżący czas UTC, nie czas lokalny. Musimy umówić się na randkę używając".ToString () ' funkcja pobierająca datę w formacie yyyy-MM-dd
Jak
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Aby uzyskać datę i godzinę w formacie yyyy-MM-ddTHH:mm:ss
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
Aby uzyskać datę i godzinę w formacie yyyy-MM-dd HH:mm:ss
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 07:27:16
Możesz to sprawdzić
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
I patrz dokumentacja konstruktora date (). link
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-11 06:31:18
O co w tym chodzi?. Najczystszym sposobem na to jest
var currentDate=new Date().toLocaleString().slice(0,10);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-31 19:39:27
Myślę, że to stare pytanie, ale najprostszym sposobem byłoby następujące:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
To pobierze bieżący czas, przekaże go do ciągu znaków na podstawie lokalizacji, a następnie możesz wywołać funkcję CurrentTime, aby wyświetlić czas. To byłby dla mnie najskuteczniejszy sposób na zdobycie znacznika czasu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-19 22:21:47
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-12 16:07:32
Nie wiem, czy to komuś pomoże, ale używam tego, aby uzyskać obiekt today Date.
new Date( 3600000*Math.floor(Date.now()/3600000) )
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-01 15:25:15
To może Ci pomóc.]}
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
Wyświetli bieżącą datę w formacie dd / MM / RRRR
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-17 08:33:10