Как получить текущую дату в JavaScript? - PullRequest
1993 голосов
/ 07 октября 2009

Как мне получить текущую дату в JavaScript?

Ответы [ 44 ]

8 голосов
/ 01 октября 2015
new Date().toISOString().slice(0,10); 

тоже будет работать

7 голосов
/ 08 февраля 2013

Вы можете использовать это

<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-код

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>
6 голосов
/ 20 января 2017

Однострочное решение JS:

ТЛ; др

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

ребро, самое последнее и возврат хрома todaysDate = "2/7/2017"
«работает» * в IE10 +

РЕДАКТИРОВАТЬ 2/7/2017

Я обнаружил, что IE10 и IE Edge ведут себя немного по-другому ... пойди разберись. с new Date(Date.now()).toLocaleString() в качестве ввода,

IE10 возвращает:

"Tuesday, February 07, 2017 2:58:25 PM"

Я мог бы написать большую длинную функцию и FTFY. Но вы действительно должны использовать moment.js для этого материала. Мой скрипт просто очищает это и дает вам расширенную традиционную нотацию США: > todaysDate = "March 06, 2017"

IE EDGE возвращает:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

Конечно, это не может быть так просто. Строка даты Edge содержит невидимые символы «•» между каждым видимым. Так что теперь мы будем проверять, не является ли первый символ числом, а первые 3 символа, поскольку оказывается, что любой отдельный символ во всем диапазоне дат в конечном итоге будет точка или косая черта в какой-то момент. Так что для простоты просто .slice () первые три символа (крошечный буфер против будущих махинаций), а затем проверьте номера. Вероятно, следует отметить, что эти невидимые точки могут потенциально сохраняться в вашем коде. Возможно, я бы вникнул в это, если бы у тебя были большие планы, чем просто распечатать эту строку для твоего взгляда.

∴ обновленный однострочный:

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

Это отстой, чтобы читать. Как насчет:

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

ОРИГИНАЛЬНЫЙ ОТВЕТ

У меня для вас есть одна строка:

new Date(Date.now()).toLocaleString().split(', ')[0];

и [1] даст вам время суток.

6 голосов
/ 01 февраля 2017

Если вы используете jQuery. Попробуйте этот лайнер:

$.datepicker.formatDate('dd/mm/yy', new Date());

Вот соглашение о форматировании даты

  • d - день месяца (без начального нуля)
  • дд - день месяца (две цифры)
  • o - день года (без начальных нулей)
  • oo - день года (трехзначный)
  • D - название дня короткое
  • DD - длинное имя
  • м - месяц года (без нуля в начале)
  • мм - месяц года (две цифры)
  • M - короткое название месяца
  • MM - длинное название месяца
  • y - год (две цифры)
  • гг - год (четыре цифры)

Вот ссылка на jQuery DatePicker

4 голосов
/ 31 октября 2015

Что в этом такого? .. Самый чистый способ сделать это -

var currentDate=new Date().toLocaleString().slice(0,10);

4 голосов
/ 11 августа 2015

Вы можете оформить заказ

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

И посмотрите документацию для конструктора Date (). ссылка

3 голосов
/ 12 апреля 2015
var dateTimeToday = new Date();
var dateToday = new Date(
    dateTimeToday.getFullYear(), 
    (dateTimeToday.getMonth() + 1) /*Jan = 0! */, 
    dateTimeToday.getDate(), 
    0, 
    0, 
    0, 
    0);
3 голосов
/ 20 января 2015

Я думаю, что это старый вопрос, но самый простой способ будет следующим:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

Это будет захватывать текущее время, передавать его в строку в зависимости от местоположения, а затем вы можете вызвать функцию CurrentTime для отображения времени. Для меня это был бы самый эффективный способ получить отметку времени для чего-либо.

3 голосов
/ 01 октября 2015

Я не знаю, поможет ли это кому-нибудь, но я использую это, чтобы получить объект Date сегодня.

new Date( 3600000*Math.floor(Date.now()/3600000) )
3 голосов
/ 17 августа 2016

Это может помочь вам

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

Будет напечатана текущая дата в формате дд / мм / гггг

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...