Однострочное решение 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]
даст вам время суток.