Как отформатировать дату JavaScript
Как я могу отформатировать объект даты JavaScript для печати как 10-Aug-2010
?
Ответы
Ответ 1
Внимание: Ниже приведены более качественные ответы. Этот ответ был написан в 2010 году, и с тех пор появились новые и лучшие решения. ОП должен принять другой ответ.
function formatDate(date) {
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var day = date.getDate();
var monthIndex = date.getMonth();
var year = date.getFullYear();
return day + ' ' + monthNames[monthIndex] + ' ' + year;
}
console.log(formatDate(new Date())); // show current date-time in console
Ответ 2
Используйте toLocaleDateString()
Метод toLocaleDateString()
возвращает строку с чувствительным к языку представлением части даты даты. Аргументы locales и options позволяют приложениям указывать язык, для которого должны использоваться соглашения о форматировании, и позволяют настраивать поведение функции.
Значения, которые вы можете передать в опциях для разных ключей:
- день:
Представлениедня.
Возможные значения: "числовой", "2-значный".
- будний день:
Представлениедня недели.
Возможные значения: "узкий", "короткий", "длинный".
- Год выпуска:
Представлениегода.
Возможные значения: "числовой", "2-значный".
- месяц:
Представлениемесяца.
Возможные значения: "числовой", "2-значный", "узкий", "короткий", "длинный".
- час:
Представлениечаса.
Возможные значения: "числовой", "2-значный".
- минута:
Представление о минуте.
Возможные значения: "числовой", "2-значный".
- второй:
Представлениевторое.
Возможные значения: "числовые", двузначные ".
Все эти ключи являются необязательными. Вы можете изменить количество значений параметров в соответствии с вашими требованиями, что также будет отражать наличие каждой даты и времени.
Примечание. Если вы хотите настроить только параметры содержимого, но при этом использовать текущую локаль, передача null
для первого параметра вызовет ошибку. Вместо этого используйте undefined
.
Для разных языков:
- "en-US": для английского языка
- "hi-IN": для хинди
- "ja-JP": для японского
Вы можете использовать больше вариантов языка.
Например,
var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var today = new Date();
console.log(today.toLocaleDateString("en-US")); // 9/17/2016
console.log(today.toLocaleDateString("en-US", options)); // Saturday, September 17, 2016
console.log(today.toLocaleDateString("hi-IN", options)); // शनिवार, 17 सितंबर 2016
Ответ 3
Используйте date.format library:
var dateFormat = require('dateformat');
var now = new Date();
dateFormat(now, "dddd, mmmm dS, yyyy, h:MM:ss TT");
возвращает:
Saturday, June 9th, 2007, 5:46:21 PM
dateformat на npm
http://jsfiddle.net/phZr7/1/
Ответ 4
Если вам нужно быстро форматировать дату, используя обычный JavaScript, используйте getDate
, getMonth + 1
, getFullYear
, getHours
и getMinutes
:
var d = new Date();
var datestring = d.getDate() + "-" + (d.getMonth()+1) + "-" + d.getFullYear() + " " +
d.getHours() + ":" + d.getMinutes();
// 16-5-2015 9:50
Или, если вам нужно, чтобы он дополнялся нулями:
var datestring = ("0" + d.getDate()).slice(-2) + "-" + ("0"+(d.getMonth()+1)).slice(-2) + "-" +
d.getFullYear() + " " + ("0" + d.getHours()).slice(-2) + ":" + ("0" + d.getMinutes()).slice(-2);
// 16-05-2015 09:50
Ответ 5
Ну, я хотел преобразовать сегодняшнюю дату в MySQL строку даты, такую как 2012-06-23, и использовать эту строку в качестве параметра в одном из моих запросов. Я нашел простое решение:
var today = new Date().toISOString().slice(0, 10);
Помните, что приведенное выше решение не учитывает смещение вашего часового пояса.
Вы могли бы рассмотреть возможность использования этой функции вместо этого:
function toJSONLocal (date) {
var local = new Date(date);
local.setMinutes(date.getMinutes() - date.getTimezoneOffset());
return local.toJSON().slice(0, 10);
}
Это даст вам правильную дату в случае, если вы выполняете этот код в начале/конце дня.
Ответ 6
Пользовательская функция форматирования:
Для фиксированных форматов простую функцию выполняет задание. В следующем примере создается международный формат ГГГГ-ММ-ДД:
function dateToYMD(date) {
var d = date.getDate();
var m = date.getMonth() + 1; //Month from 0 to 11
var y = date.getFullYear();
return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d);
}
console.log(dateToYMD(new Date(2017,10,5))); // Nov 5
Ответ 7
Если вы уже используете jQuery UI в своем проекте, вы можете сделать это следующим образом:
var formatted = $.datepicker.formatDate("M d, yy", new Date("2014-07-08T09:02:21.377"));
// formatted will be 'Jul 8, 2014'
Некоторые параметры формата даты датпикера для воспроизведения доступны здесь.
Ответ 8
Я думаю, вы можете просто использовать нестандартный метод Date toLocaleFormat(formatString)
formatString: Строка формата в том же формате, что и функция strftime()
в C.
var today = new Date();
today.toLocaleFormat('%d-%b-%Y'); // 30-Dec-2011
Литература:
Ответ 9
Обычный JavaScript - лучший выбор для небольших onetimers.
С другой стороны, если вам нужно больше материала даты, MomentJS - отличное решение.
Например:
moment().format('YYYY-MM-DD HH:m:s'); // now() -> 2015-03-24 14:32:20
moment("20111031", "YYYYMMDD").fromNow(); // 3 years ago
moment("20120620", "YYYYMMDD").fromNow(); // 3 years ago
moment().startOf('day').fromNow(); // 11 hours ago
moment().endOf('day').fromNow(); // in 13 hours
Ответ 10
В современных браузерах (*) вы можете просто сделать это:
var today = new Date().toLocaleDateString('en-GB', {
day : 'numeric',
month : 'short',
year : 'numeric'
}).split(' ').join('-');
Вывод, если выполняется сегодня (24 января 2016 года):
'24-Jan-2016'
(*) Согласно MDN, "современные браузеры" означают Chrome 24+, Firefox 29+, Internet Explorer 11, Edge 12+, Opera 15+ и Safari ночная сборка. p >
Ответ 11
Вы должны посмотреть date.js. Он добавляет много удобных помощников для работы с датами, например, в вашем случае:
var date = Date.parse('2010-08-10');
console.log(date.toString('dd-MMM-yyyy'));
Начало работы: http://www.datejs.com/2007/11/27/getting-started-with-datejs/
Ответ 12
@Sébastien - альтернативная поддержка всех браузеров
new Date(parseInt(496407600)*1000).toLocaleDateString('de-DE', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\./g, '/');
Документация:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
Ответ 13
Я могу получить ваш запрошенный формат в одной строке без использования библиотек и методов Date, просто regex:
var d = (new Date()).toString().replace(/\S+\s(\S+)\s(\d+)\s(\d+)\s.*/,'$2-$1-$3');
// date will be formatted as "14-Oct-2015" (pass any date object in place of 'new Date()')
Обновление. Как указывал @RobG, вывод Date.prototype.toString() зависит от реализации. Поэтому используйте это с осторожностью и при необходимости измените, если вы используете это решение. В моем тестировании это надежно работает в Северной Америке, где основные браузеры (Chrome, Safari, Firefox и IE) возвращают одинаковый формат строк.
Ответ 14
Использование шаблона строки ECMAScript Edition 6 (ES6/ES2015):
let d = new Date();
let formatted = '${d.getFullYear()}-${d.getMonth() + 1}-${d.getDate()}';
Если вам нужно изменить разделители:
const delimiter = '/';
let formatted = [d.getFullYear(), d.getMonth() + 1, d.getDate()].join(delimiter);
Ответ 15
Пакетное решение: Luxon
Если вы хотите использовать одно решение для всех, я настоятельно рекомендую использовать Luxon (модернизированную версию Moment.js), которая также выполняет форматирование во многих локалях/языках и множестве других функций.
Luxon размещен на веб-сайте Moment.js и разработан разработчиком Moment.js, поскольку Moment.js имеет ограничения, которые разработчик хотел устранить, но не смог.
Для установки:
npm install luxon
или yarn add luxon
(посетите ссылку для других способов установки)
Пример:
luxon.DateTime.fromISO('2010-08-10').toFormat('yyyy-LLL-dd');
Урожайность:
10-Aug-2010
Ручное решение
Используя форматирование, аналогичное Moment.js, Class DateTimeFormatter (Java) и Class SimpleDateFormat (Java), я реализовал комплексное решение formatDate(date, patternStr)
, в котором код легко читать и изменять, Вы можете отобразить дату, время, AM/PM и т.д. См. примеры кода.
Пример:
formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss:S')
(formatDate
реализован в фрагменте кода ниже)
Урожайность:
Friday, October 12, 2018 18:11:23:445
Попробуйте ввести код, нажав "Выполнить фрагмент кода".
Шаблоны даты и времени
yy
= год из двух цифр; yyyy
= полный год
M
= разрядный месяц; MM
= двухзначный месяц; MMM
= короткое название месяца; MMMM
= полное название месяца
EEEE
= полное название дня недели; EEE
= короткое название дня недели
d
= день цифр; dd
= день с двумя цифрами
h
= часы утра/вечера; hh
= двузначные часы утра/вечера; H
= часы; HH
= двухзначные часы
m
= минуты; mm
= минуты с двумя цифрами; aaa
= AM/PM
s
= секунды; ss
= 2-значные секунды
S
= миллисекунды
var monthNames = [
"January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"
];
var dayOfWeekNames = [
"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday"
];
function formatDate(date, patternStr){
if (!patternStr) {
patternStr = 'M/d/yyyy';
}
var day = date.getDate(),
month = date.getMonth(),
year = date.getFullYear(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds(),
miliseconds = date.getMilliseconds(),
h = hour % 12,
hh = twoDigitPad(h),
HH = twoDigitPad(hour),
mm = twoDigitPad(minute),
ss = twoDigitPad(second),
aaa = hour < 12 ? 'AM' : 'PM',
EEEE = dayOfWeekNames[date.getDay()],
EEE = EEEE.substr(0, 3),
dd = twoDigitPad(day),
M = month + 1,
MM = twoDigitPad(M),
MMMM = monthNames[month],
MMM = MMMM.substr(0, 3),
yyyy = year + "",
yy = yyyy.substr(2, 2)
;
// checks to see if month name will be used
patternStr = patternStr
.replace('hh', hh).replace('h', h)
.replace('HH', HH).replace('H', hour)
.replace('mm', mm).replace('m', minute)
.replace('ss', ss).replace('s', second)
.replace('S', miliseconds)
.replace('dd', dd).replace('d', day)
.replace('EEEE', EEEE).replace('EEE', EEE)
.replace('yyyy', yyyy)
.replace('yy', yy)
.replace('aaa', aaa);
if (patternStr.indexOf('MMM') > -1) {
patternStr = patternStr
.replace('MMMM', MMMM)
.replace('MMM', MMM);
}
else {
patternStr = patternStr
.replace('MM', MM)
.replace('M', M);
}
return patternStr;
}
function twoDigitPad(num) {
return num < 10 ? "0" + num : num;
}
console.log(formatDate(new Date()));
console.log(formatDate(new Date(), 'dd-MMM-yyyy')); //OP request
console.log(formatDate(new Date(), 'EEEE, MMMM d, yyyy HH:mm:ss.S aaa'));
console.log(formatDate(new Date(), 'EEE, MMM d, yyyy HH:mm'));
console.log(formatDate(new Date(), 'yyyy-MM-dd HH:mm:ss.S'));
console.log(formatDate(new Date(), 'M/dd/yyyy h:mmaaa'));
Ответ 16
Вот код, который я только что написал для обработки форматирования даты для проекта, над которым я работаю. Он имитирует функциональность форматирования даты PHP в соответствии с моими потребностями. Не стесняйтесь использовать его, просто расширяя уже существующий объект Date(). Это может быть не самое элегантное решение, но оно работает для моих нужд.
var d = new Date();
d_string = d.format("m/d/Y h:i:s");
/**************************************
* Date class extension
*
*/
// Provide month names
Date.prototype.getMonthName = function(){
var month_names = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
return month_names[this.getMonth()];
}
// Provide month abbreviation
Date.prototype.getMonthAbbr = function(){
var month_abbrs = [
'Jan',
'Feb',
'Mar',
'Apr',
'May',
'Jun',
'Jul',
'Aug',
'Sep',
'Oct',
'Nov',
'Dec'
];
return month_abbrs[this.getMonth()];
}
// Provide full day of week name
Date.prototype.getDayFull = function(){
var days_full = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
return days_full[this.getDay()];
};
// Provide full day of week name
Date.prototype.getDayAbbr = function(){
var days_abbr = [
'Sun',
'Mon',
'Tue',
'Wed',
'Thur',
'Fri',
'Sat'
];
return days_abbr[this.getDay()];
};
// Provide the day of year 1-365
Date.prototype.getDayOfYear = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((this - onejan) / 86400000);
};
// Provide the day suffix (st,nd,rd,th)
Date.prototype.getDaySuffix = function() {
var d = this.getDate();
var sfx = ["th","st","nd","rd"];
var val = d%100;
return (sfx[(val-20)%10] || sfx[val] || sfx[0]);
};
// Provide Week of Year
Date.prototype.getWeekOfYear = function() {
var onejan = new Date(this.getFullYear(),0,1);
return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
}
// Provide if it is a leap year or not
Date.prototype.isLeapYear = function(){
var yr = this.getFullYear();
if ((parseInt(yr)%4) == 0){
if (parseInt(yr)%100 == 0){
if (parseInt(yr)%400 != 0){
return false;
}
if (parseInt(yr)%400 == 0){
return true;
}
}
if (parseInt(yr)%100 != 0){
return true;
}
}
if ((parseInt(yr)%4) != 0){
return false;
}
};
// Provide Number of Days in a given month
Date.prototype.getMonthDayCount = function() {
var month_day_counts = [
31,
this.isLeapYear() ? 29 : 28,
31,
30,
31,
30,
31,
31,
30,
31,
30,
31
];
return month_day_counts[this.getMonth()];
}
// format provided date into this.format format
Date.prototype.format = function(dateFormat){
// break apart format string into array of characters
dateFormat = dateFormat.split("");
var date = this.getDate(),
month = this.getMonth(),
hours = this.getHours(),
minutes = this.getMinutes(),
seconds = this.getSeconds();
// get all date properties ( based on PHP date object functionality )
var date_props = {
d: date < 10 ? '0'+date : date,
D: this.getDayAbbr(),
j: this.getDate(),
l: this.getDayFull(),
S: this.getDaySuffix(),
w: this.getDay(),
z: this.getDayOfYear(),
W: this.getWeekOfYear(),
F: this.getMonthName(),
m: month < 10 ? '0'+(month+1) : month+1,
M: this.getMonthAbbr(),
n: month+1,
t: this.getMonthDayCount(),
L: this.isLeapYear() ? '1' : '0',
Y: this.getFullYear(),
y: this.getFullYear()+''.substring(2,4),
a: hours > 12 ? 'pm' : 'am',
A: hours > 12 ? 'PM' : 'AM',
g: hours % 12 > 0 ? hours % 12 : 12,
G: hours > 0 ? hours : "12",
h: hours % 12 > 0 ? hours % 12 : 12,
H: hours,
i: minutes < 10 ? '0' + minutes : minutes,
s: seconds < 10 ? '0' + seconds : seconds
};
// loop through format array of characters and add matching data else add the format character (:,/, etc.)
var date_string = "";
for(var i=0;i<dateFormat.length;i++){
var f = dateFormat[i];
if(f.match(/[a-zA-Z]/g)){
date_string += date_props[f] ? date_props[f] : '';
} else {
date_string += f;
}
}
return date_string;
};
/*
*
* END - Date class extension
*
************************************/
Ответ 17
Хорошо, у нас есть нечто, называемое Intl, которое очень полезно для форматирования даты в JavaScript в наши дни:
Ваша дата как ниже:
var date = '10/8/2010';
И вы меняете на Date, используя new Date(), как показано ниже:
date = new Date(date);
И теперь вы можете отформатировать его так, как вам нравится, используя список локалей, как показано ниже:
date = new Intl.DateTimeFormat('en-AU').format(date); // Australian date format: "8/10/2010"
date = new Intl.DateTimeFormat('en-US').format(date); // USA date format: "10/8/2010"
date = new Intl.DateTimeFormat('ar-EG').format(date); // Arabic date format: "٨/١٠/٢٠١٠"
Если вы точно хотите формат, который вы упомянули выше, вы можете сделать:
date = new Date(Date.UTC(2010, 7, 10, 0, 0, 0));
var options = {year: "numeric", month: "short", day: "numeric"};
date = new Intl.DateTimeFormat("en-AU", options).format(date).replace(/\s/g, '-');
И результат будет:
"10-Aug-2010"
Для получения более подробной информации о Интернационализации API ECMAScript (Intl), посетите здесь.
Ответ 18
Решение JavaScript без использования каких-либо внешних библиотек:
var now = new Date()
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
var formattedDate = now.getDate() + "-" + months[now.getMonth()] + "-" + now.getFullYear()
alert(formattedDate)
Ответ 19
Если вы используете jQuery UI в своем коде, есть встроенная функция под названием formatDate()
. Я использую его таким образом, чтобы форматировать сегодняшнюю дату:
var testdate = Date();
testdate = $.datepicker.formatDate( "d-M-yy",new Date(testdate));
alert(testdate);
Вы можете увидеть много других примеров даты форматирования в документации по jQuery UI.
Ответ 20
Полезный и гибкий способ форматирования DateTimes в JavaScript - это Intl.DateTimeFormat
:
var date = new Date();
var options = { year: 'numeric', month: 'short', day: '2-digit'};
var _resultDate = new Intl.DateTimeFormat('en-GB', options).format(date);
// The _resultDate is: "12 Oct 2017"
// Replace all spaces with - and then log it.
console.log(_resultDate.replace(/ /g,'-'));
Результат: "12-Oct-2017"
Форматы даты и времени можно настроить с помощью аргумента параметров.
Объект Intl.DateTimeFormat
- это конструктор для объектов, которые поддерживают форматирование даты и времени с учетом языка.
Синтаксис
new Intl.DateTimeFormat([locales[, options]])
Intl.DateTimeFormat.call(this[, locales[, options]])
параметры
локали
Необязательный. Строка с языковым тегом BCP 47 или массив таких строк. Для общей формы и интерпретации аргумента locales см. Страницу Intl. Следующие ключи расширения Unicode разрешены:
nu
Numbering system. Possible values include: "arab", "arabext", "bali", "beng", "deva", "fullwide", "gujr", "guru", "hanidec", "khmr", "knda", "laoo", "latn", "limb", "mlym", "mong", "mymr", "orya", "tamldec", "telu", "thai", "tibt".
ca
Calendar. Possible values include: "buddhist", "chinese", "coptic", "ethioaa", "ethiopic", "gregory", "hebrew", "indian", "islamic", "islamicc", "iso8601", "japanese", "persian", "roc".
Опции
Необязательный. Объект с некоторыми или всеми из следующих свойств:
localeMatcher
Алгоритм сопоставления локали для использования. Возможные значения: "lookup"
и "best fit"
; по умолчанию "best fit"
. Информацию об этой опции смотрите на странице Intl.
часовой пояс
Часовой пояс для использования. Единственные значения, которые должны распознавать реализации, это "UTC"
; по умолчанию используется часовой пояс по умолчанию. Реализации могут также распознавать имена часовых поясов в базе данных часовых поясов IANA, такие как "Asia/Shanghai"
, "Asia/Kolkata"
, "America/New_York"
.
hour12
Использовать ли 12-часовое время (в отличие от 24-часового). Возможные значения - true
и false
; значение по умолчанию зависит от локали.
formatMatcher
Алгоритм соответствия формата для использования. Возможные значения являются "basic"
и "best fit"
; по умолчанию "best fit"
. См. Следующие параграфы для получения информации об использовании этого свойства.
Следующие свойства описывают компоненты даты и времени для использования в форматированном выводе и их требуемые представления. Реализации должны поддерживать как минимум следующие подмножества:
weekday, year, month, day, hour, minute, second
weekday, year, month, day
year, month, day
year, month
month, day
hour, minute, second
hour, minute
Реализации могут поддерживать другие подмножества, и запросы будут согласовываться со всеми доступными комбинациями подмножеств-представлений, чтобы найти наилучшее совпадение. Для этого согласования доступны два алгоритма, которые выбираются свойством formatMatcher: полностью определенный "basic"
алгоритм и зависящий от реализации алгоритм "наилучшего соответствия".
будний день
Представление дня недели. Возможные значения: "narrow"
, "short"
, "long"
.
эпоха
Представление эпохи. Возможные значения: "narrow"
, "short"
, "long"
.
год
Представление года. Возможные значения: "numeric"
, "2-digit"
.
месяц
Представление месяца. Возможные значения: "numeric"
, "2-digit"
, "narrow"
, "short"
, "long"
.
день
Представление дня. Возможные значения: "numeric"
, "2-digit"
.
час
Представление часа. Возможные значения: "numeric"
, "2-digit"
.
минут
Представление о минуте. Возможные значения: "numeric"
, "2-digit"
.
второй
Представление второе. Возможные значения: "numeric"
, "2-digit"
.
TimeZoneName
Представление названия часового пояса. Возможные значения: "short"
, "long"
. Значение по умолчанию для каждого свойства компонента даты и времени не определено, но если все свойства компонента не определены, то год, месяц и день считаются "numeric"
.
Проверить онлайн
Подробнее
Ответ 21
У нас есть много решений для этого, но я думаю, что лучший из них - Moment.js. Поэтому я лично предлагаю использовать Moment.js для операций даты и времени.
console.log(moment().format('DD-MMM-YYYY'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
Ответ 22
Это может помочь с проблемой:
var d = new Date();
var options = {
day: 'numeric',
month: 'long',
year: 'numeric'
};
console.log(d.toLocaleDateString('en-ZA', options));
Ответ 23
Вот как я применил мои плагины npm
var monthNames = [
"January", "February", "March",
"April", "May", "June", "July",
"August", "September", "October",
"November", "December"
];
var Days = [
"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"
];
var formatDate = function(dt,format){
format = format.replace('ss', pad(dt.getSeconds(),2));
format = format.replace('s', dt.getSeconds());
format = format.replace('dd', pad(dt.getDate(),2));
format = format.replace('d', dt.getDate());
format = format.replace('mm', pad(dt.getMinutes(),2));
format = format.replace('m', dt.getMinutes());
format = format.replace('MMMM', monthNames[dt.getMonth()]);
format = format.replace('MMM', monthNames[dt.getMonth()].substring(0,3));
format = format.replace('MM', pad(dt.getMonth()+1,2));
format = format.replace(/M(?![ao])/, dt.getMonth()+1);
format = format.replace('DD', Days[dt.getDay()]);
format = format.replace(/D(?!e)/, Days[dt.getDay()].substring(0,3));
format = format.replace('yyyy', dt.getFullYear());
format = format.replace('YYYY', dt.getFullYear());
format = format.replace('yy', (dt.getFullYear()+"").substring(2));
format = format.replace('YY', (dt.getFullYear()+"").substring(2));
format = format.replace('HH', pad(dt.getHours(),2));
format = format.replace('H', dt.getHours());
return format;
}
pad = function(n, width, z) {
z = z || '0';
n = n + '';
return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;
}
Ответ 24
new Date().toLocaleDateString()
// "3/21/2018"
Ответ 25
var today = new Date();
var formattedToday = today.toLocaleDateString() + ' ' + today.toLocaleTimeString();
Ответ 26
Sugar.js имеет отличные расширения для объекта Date, включая метод Date.format.
Примеры из документации:
Date.create().format('{Weekday} {Month} {dd}, {yyyy}');
Date.create().format('{12hr}:{mm}{tt}')
Ответ 27
Любой, кто ищет действительно простое решение ES6 для копирования, вставки и использования:
const dateToString = d => '${d.getFullYear()}-${('00' + (d.getMonth() + 1)).slice(-2)}-${('00' + d.getDate()).slice(-2)}'
// how to use:
const myDate = new Date(Date.parse('04 Dec 1995 00:12:00 GMT'))
console.log(dateToString(myDate)) // 1995-12-04
Ответ 28
Чтобы получить "10 августа 2010 года", попробуйте:
var date = new Date('2010-08-10 00:00:00');
date = date.toLocaleDateString(undefined, {day:'2-digit'}) + '-' + date.toLocaleDateString(undefined, {month:'short'}) + '-' + date.toLocaleDateString(undefined, {year:'numeric'})
Информацию о поддержке браузера см. в разделе toLocaleDateString.
Ответ 29
Добавьте плагин jQuery UI на свою страницу:
function DateFormate(dateFormate, datetime) {
return $.datepicker.formatDate(dateFormate, datetime);
};
Ответ 30
Попробуйте следующее:
function init(){
var d = new Date();
var day = d.getDate();
var x = d.toDateString().substr(4, 3);
var year = d.getFullYear();
document.querySelector("#mydate").innerHTML = day + '-' + x + '-' + year;
}
window.onload = init;
<div id="mydate"></div>