ОБНОВЛЕНО! , Прокрутите вниз
Если вы хотите что-то простое, красивое для конечного пользователя ... 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 После долгих проволочек я наконец-то GitHubbed и обновил его с помощью окончательного решения, которое я использовал для себя. В него даже были внесены некоторые изменения в последнюю минуту, чтобы сделать его слаще! Если вы ищете старый jsFiddle, пожалуйста, посмотрите это .
Это обновление поставляется с 2 вкусами, все еще относительно маленькими, хотя и не такими маленькими, как мой предыдущий, оригинальный ответ. Если вы хотите очень маленький, пойти с этим.
Также обратите внимание: это все еще менее раздутый, чем moment.js. Несмотря на то, что moment.js хорош, imo, он имеет много светских методов, которые требуют изучения момента, как если бы это был язык. Мой здесь использует тот же общий формат, что и PHP: дата .
Быстрые ссылки
Аромат 1 new Date().format(String)
Мой Личный Фав. Я знаю табу, но отлично работает на объекте Date. Просто будьте в курсе любых других модов, которые могут у вас быть с объектом Date.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Аромат 2 dateFormat(Date, String)
Более традиционный метод «все в одном». Имеет все возможности предыдущего, но вызывается через метод с параметром Date.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
Бонус-вкус (требуется jQuery) $.date(Date, String)
Это содержит гораздо больше, чем просто format
опция. Он расширяет базовый объект Date и включает такие методы, как addDays
. Для получения дополнительной информации, пожалуйста, см. Git .
В этом моде символы формата вдохновлены PHP: дата . Полный список см. В моем README
Этот мод также имеет гораздо более длинный список готовых форматов. Чтобы использовать готовый формат, просто введите его имя ключа. dateFormat(new Date(), 'pretty-a');
- 'соединение'
- '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'
- 'мыло' == 'Y-м-д \\ 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'
- 'константы'
- 'АМЕРИКАНСКИЙ' == 'F j Y'
- 'AMERICANSHORT' == 'm / d / Y'
- 'AMERICANSANSHORTWTIME' == 'm / d / Y h: i: sA'
- 'ATOM' == 'Y-m-d \\ TH: i: sP'
- 'COOKIE' == 'l d-M-Y H: i: s T'
- 'ЕВРОПЕЙСКИЙ' == 'j F Y'
- 'ЕВРОПЕЙСКИЙ ХОРТ' == 'd.m.Y'
- 'ЕВРОПЕЙСКИЙ КРАТКИЙ ВРЕМЯ' == 'd.m.Y H: i: s'
- 'ISO8601' == 'Y-m-d \\ TH: i: sO'
- 'ЮРИДИЧЕСКИЕ' == '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-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'
Как вы можете заметить, вы можете использовать двойной \
для экранирования символа.