Javascript объект даты, getDate (), getMonth () и getFullYear () объекта даты в IE и Safari - PullRequest
0 голосов
/ 24 марта 2019

Я использую эту функцию в своем коде Javascript для форматирования объекта dateTime в строку, и эта функция отлично работает для Firefox и Chrome, но не для IE и Safari. Кто-нибудь знает, что нужно сделать, чтобы заставить это работать также с Safari и IE?

дата Объект выглядит так в Chrome: Пн 25 марта 2019 00:00:00 GMT + 0100 (CET)

function formatDateTimeToString(date) {
  var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
  var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
  var yyyy = date.getFullYear();
  var hours = (date.getHours() < 10 ? '0' : '') + date.getHours();
  var minutes = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes();
  return (dd + "." + MM + "." + yyyy + ' ' + hours + ':' + minutes);
}

console.log(formatDateTimeToString(new Date()));

1 Ответ

0 голосов
/ 24 марта 2019

Если объект даты для Safari генерируется так же, как это делается для Chrome, то, по крайней мере, в моей старой версии Safari код выполняется успешно, как показано ниже:

function formatDateTimeToString(date) {
var dd = (date.getDate() < 10 ? '0' : '') + date.getDate();
var MM = ((date.getMonth() + 1) < 10 ? '0' : '') + (date.getMonth() + 1);
var yyyy = date.getFullYear();
var hours = (date.getHours() < 10 ? '0' : '') + date.getHours();
var minutes = (date.getMinutes() < 10 ? '0' : '') + date.getMinutes();
               return (dd + "." + MM + "." + yyyy + ' ' + hours + ':' + minutes);
            }

var d = document;
d.w = d.writeln;
var date = new Date("Mon Mar 25 2019 00:00:00 GMT+0100 (CET)");

/* this works */
d.w( formatDateTimeToString(date)+"<BR>"); 

// output:
// 24.03.2019 16:00

Вы можете получить NaN в результате в Safari, если попытаетесь создать экземпляр объекта Date со строкой, содержащей дефисы, следующим образом:

var d = document;
d.w = d.writeln;

date = new Date("2019-03-24");
/* returns NaN */
d.w( formatDateTimeToString(date)+"<BR>");

date = new Date("03-24-2019");
/* this fails with NaN*/
d.w( formatDateTimeToString(date)+"<BR>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...