Как получить текущую дату в JavaScript?
Как получить текущую дату в JavaScript?
Ответы
Ответ 1
Используйте new Date()
для создания нового объекта Date
содержащего текущую дату и время.
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
Ответ 2
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Ответ 3
ОБНОВЛЕНО!, прокрутите вниз
Если вы хотите что-то простое и красивое для конечного пользователя... 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>
Ответ 4
Самый короткий из возможных.
Чтобы получить формат как "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Ответ 5
Если вам просто нужна дата без информации о времени, используйте:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Ответ 6
Попробуйте следующее:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Ответ 7
Если вы ищете намного более подробный контроль над форматами дат, я настоятельно рекомендую проверить параметры timejs. Потрясающая библиотека - и только 5 КБ.
http://momentjs.com/
Ответ 8
Вы можете использовать moment.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>
Ответ 9
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Ответ 10
Это работает каждый раз:
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);
console.log(today);
Ответ 11
var date = new Date().toLocaleDateString("en-US");
Кроме того, вы можете вызвать метод toLocaleDateString
с двумя параметрами:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
Статья на MSDN. Подробнее об этом методе MDN.
Ответ 12
Чистая, простая версия:
new Date().toLocaleString();
Результат изменяется в соответствии с пользователем locale:
2/27/2017, 9:15:41 AM
Ответ 13
Если вас устраивает формат ГГГГ-ММ-ДД, это тоже подойдет.
new Date().toISOString().split('T')[0]
2018-03-10
Ответ 14
Вы можете использовать Date.js библиотеку, которая расширяет объект Date, таким образом, вы можете иметь метод .today().
Ответ 15
Вы можете получить текущий вызов даты статическим методом следующим образом:
var now = Date.now()
ссылка:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
Ответ 16
Ответ варуна не учитывает TimezoneOffset. Вот версия, которая делает:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
TimezoneOffset
- минуты, а конструктор Date занимает миллисекунды, таким образом, умножение на 60000
.
Ответ 17
Кратчайший ответ: new Date().toJSON().slice(0,10)
Ответ 18
Так как toISOString()
будет возвращать только текущее время UTC, а не местное время. Мы должны сделать дату, используя функцию .toString(), чтобы получить дату в формате yyyy-MM-dd
, например
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Ответ 19
Если вам нужен простой формат DD/MM/YYYY
, я просто придумал это простое решение, хотя оно не содержит префикс отсутствующих нулей.
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
Ответ 20
new Date().toDateString();
Результат:
"Wed Feb 03 2016"
Ответ 21
new Date().toISOString().slice(0,10);
тоже будет работать
Ответ 22
Вы можете использовать этот
<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>
Ответ 23
ПОСЛЕДНИЕ ИЗМЕНЕНИЯ: 23.08.199
Библиотека date-fns работает почти так же, как moment.js, но имеет гораздо меньше места. Он позволяет вам выбирать, какие функции вы хотите включить в свой проект, чтобы вам не приходилось компилировать всю библиотеку для форматирования сегодняшней даты. Если минимальная сторонняя библиотека не подходит для вашего проекта, я одобряю принятое Сэмюэлем Меддоусом решение сверху.
Сохранение истории ниже, потому что это помогло нескольким людям. Но, к сведению, он довольно хакерский и может сломаться без предупреждения, как и большинство решений в этом посте
ОБНОВЛЕНИЕ 2/7/2017
Однострочное решение 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 latest, & chrome return todaysDate = "2/7/2017"
"works"* in IE10+
Объяснение
Я обнаружил, что 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"
Конечно, это не может быть так просто. Строка даты края имеет невидимые символы "•" между каждым видимым. Теперь мы будем проверять, не является ли первый символ числом, а первые 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]
покажет вам время суток.
Ответ 24
Если вы используете jQuery. Попробуйте этот один лайнер:
$.datepicker.formatDate('dd/mm/yy', new Date());
Вот соглашение о форматировании даты
- d - день месяца (без начального нуля)
- dd - день месяца (две цифры)
- o - день года (без начальных нулей)
- oo - день года (три цифры)
- D - имя дня короткое
- DD - имя дня long
- m - месяц года (без начального нуля)
- мм - месяц года (две цифры)
- M - название месяца короткое
- MM - название месяца long
- y - год (две цифры)
- yy - year (четыре цифры)
Вот ссылка для jQuery datepicker
Ответ 25
Вы можете проверить это
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
И посмотрите документацию для конструктора Date().
ссылка
Ответ 26
В чем дело с этим. Самый чистый способ сделать это -
var currentDate=new Date().toLocaleString().slice(0,10);
Ответ 27
Это может помочь вам
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
Это будет печатать текущую дату в формате dd/MM/yyyy
Ответ 28
Я думаю, что это старый вопрос, но самым простым способом было бы следующее:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
Это будет захватывать текущее время, передать его в строку на основе местоположения, а затем вы можете вызвать функцию CurrentTime, чтобы отобразить время. Это было бы для меня самым эффективным способом получить отметку времени для чего-то.
Ответ 29
var dateTimeToday = new Date();
var dateToday = new Date(
dateTimeToday.getFullYear(),
(dateTimeToday.getMonth() + 1) /*Jan = 0! */,
dateTimeToday.getDate(),
0,
0,
0,
0);
Ответ 30
Pretty Print Date Like This.
1 июня 2015 года 11:36:48 утра
https://gist.github.com/Gerst20051/7d72693f722bbb0f6b58