вар dateDisplay1 = Date.parse (firstDate) .ToString ("дд/ММ/YYYY HH: мм");
Здесь есть несколько вопросов.
Анализ строк даты в значительной степени зависит от реализации и где следующие стандарты могут приводить к непоследовательным результатам. Вы должны вручную анализировать строки даты, библиотека может помочь, но 2-строчная функция будет достаточной, если у вас есть только один формат и убедитесь, что это действительная дата (см. Ниже). Для проверки допустимой даты используется только одна дополнительная строка.
Date.parse возвращает число, которое является значением времени, поэтому Date.parse(...).toString()
звонит Number.prototype.toString где проходил аргумент десятичную. Так если Date.parse возвращает соответствующее значение, то:
new Date(Date.parse(...)).toString()
не потребуется.
Если вы хотите представить строку даты в определенном формате, вы можете проверить поддержку для internationalization API и использовать ее и вернуться к своей собственной функции (или просто использовать свой собственный), например.
function parseDMY(s) {
var b = s.split(/\D+/);
return new Date(b[2], b[1]-1, b[0], b[3], b[4], b[5]);
}
function formatDateDMYhm(d) {
// Use internationalization API if available
if (typeof Intl == 'object' && typeof Intl.DateTimeFormat == 'function') {
options = {
year: 'numeric', month: '2-digit', day: '2-digit',
hour: '2-digit', minute: '2-digit', /* second: '2-digit', */
hour12: false
};
return d.toLocaleString('en-GB', options);
}
// Otherwise, use bespoke function
function z(n){return (n<10? '0':'') + n}
return z(d.getDate()) + '/' + z(d.getMonth()) + '/' + d.getFullYear() +
' ' + z(d.getHours()) + ':' + z(d.getMinutes());
}
var firstDate ='13/11/2015 13:27:24';
var secondDate ='07/11/2015 13:19:45';
document.write(formatDateDMYhm(parseDMY(firstDate)) + '<br>');
document.write(formatDateDMYhm(parseDMY(secondDate)));
Хотя, если используется интернационализация API, он вставляет дополнительную запятую после даты в некоторых браузерах (например, Chrome), но не другие (например, IE), поэтому даже при использовании стандартов не обязательно производят «стандартный» результат. Может быть, он не должен использоваться в этом случае. Использование имени месяца гораздо менее неоднозначно, поэтому подумайте об использовании этого, например, 13-ноя-2015 13:27.
По умолчанию используется американский формат даты, используйте это, чтобы объявить дату Date («2015-11-7») или Date («7 ноября 2015») – Jules
Не разбирайте строки, используя Date.parse, когда-либо. Разберите их вручную. Библиотека может помочь, но вы должны знать формат заранее, и если вам нужно только иметь дело с одним, тогда все две строки необходимы. – RobG
Я получаю NaN, когда я пробую ваш код, даже для первого: http://jsfiddle.net/gratiafide/kgstubtn/9/ Я думаю, вам понадобится использовать «split()» и создать новый объект Date От этого. – user3089840