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

javascript date date-formatting


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




Answer 1 Samuel Meddows


Используйте 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);

Это даст вам сегодняшнюю дату в формате mm/dd/yyyy.

Просто измените today = mm +'/'+ dd +'/'+ yyyy; в любой формат вы хотите.




Answer 2 Varun Natraaj


var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

Используйте опцию replace если вы собираетесь повторно использовать переменную utc , такую ​​как new Date(utc) , поскольку Firefox и Safari не распознают дату с тире.




Answer 3 SpYk3HH


ОБНОВЛЕНО! , Прокрутить вниз

Если вы хотите что-то простое и красивое для конечного пользователя ... 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 После долгих проволочек, я наконец-то установил GitHubbed и обновил его с помощью окончательного решения, которое я использовал для себя. У него даже были некоторые изменения в последнюю минуту, чтобы сделать его слаще! Если вы ищете старый jsFiddle, пожалуйста, посмотрите это .

Это обновление выпускается в двух вариантах, все еще относительно небольших, хотя и не таких маленьких, как мой первоначальный ответ. Если вы хотите очень маленький, пойти с этим.
Также обратите внимание: это все еще менее раздутый, чем moment.js. Хотя moment.js хорош, imo, в нем слишком много светских методов, которые требуют изучения, как если бы это был язык. Мой здесь использует тот же общий формат, что и PHP: date .

Быстрые ссылки

Аромат 1 new Date().format(String) My Personal Fav. Я знаю табу, но отлично работает с объектом Date. Просто будьте в курсе любых других модов, которые у вас могут быть с объектом Date.

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

Flavor 2 dateFormat(Date, String) Более традиционный метод «все в одном». Имеет все возможности предыдущего, но вызывается через метод с параметром Date.

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

BONUS Flavor (требуется jQuery) $.date(Date, String) Это содержит гораздо больше, чем просто опция простого format . Он расширяет базовый объект Date и включает такие методы, как addDays . Для получения дополнительной информации, пожалуйста, смотрите Git .

В этом моде символы формата вдохновлены PHP: date . Для полного списка, пожалуйста, смотрите мой README

Этот мод также имеет гораздо более длинный список готовых форматов. Чтобы использовать готовый формат, просто введите его имя ключа. 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' == 'Ymd h: i: s'
    • 'postgreSQL' == 'Yz'
    • 'postgreSQL2' == 'Yz'
    • 'soap' == 'Ymd \\ TH: i: su'
    • 'soap2' == 'Ymd \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Ynj \\ TG: i: s'
  • 'constants'
    • 'AMERICAN' == 'F j Y'
    • «АМЕРИКАНСКИЙ КОРЗИНУ» == «М / Д / Г»
    • 'AMERICANSANSHORTWTIME' == 'm / d / Y h: i: sA'
    • 'ATOM' == 'Ymd \\ TH: i: sP'
    • 'COOKIE' == 'l dMY H: i: s T'
    • 'ЕВРОПЕЙСКИЙ' == 'j FY'
    • "ЕВРОПЕЙСКИЙ ХОРТ" == "dmY"
    • 'EUROPEANSHORTWTIME' == 'dmY H: i: s'
    • 'ISO8601' == 'Ymd \\ TH: i: sO'
    • 'ЮРИДИЧЕСКИЙ' == 'j FY'
    • 'RFC822' == 'D d M y H: i: s O'
    • 'RFC850' == 'l dMy H: i: s T'
    • 'RFC1036' == 'D d M y H: i: s O'
    • 'RFC1123' == 'D d MYH: i: s O'
    • 'RFC2822' == 'D d MYH: i: s O'
    • 'RFC3339' == 'Ymd \\ TH: i: sP'
    • 'RSS' == 'D d MYH: i: s O'
    • 'W3C' == 'Ymd \\ TH: i: sP'
  • 'pretty'
    • 'pretty-a' == 'g: i.sA l jS \\ o \\ f FY'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f FY'
    • 'pretty-c' == 'n / d / Y g: iA'
    • 'pretty-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

Как вы можете заметить, вы можете использовать двойное \ для выхода из символа.





Answer 4 Damjan Pavlica


Самый короткий из возможных.

Получить формат "2018-08-03":

let today = new Date().toISOString().slice(0, 10)

console.log(today)

Чтобы получить формат "8/3/2018":

let today = new Date().toLocaleDateString()

console.log(today)

Также вы можете передать locale в качестве аргумента, например toLocaleDateString("sr") и т. Д.




Answer 5 Marshal


Если ты хочешь просто свидание без информации о времени,используй:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);