IE和Safari中的Javascript日期对象,日期对象的getDate(),getMonth()和getFullYear()

时间:2019-03-24 14:22:23

标签: javascript date

我在我的Javascript代码中使用了此功能,以便将dateTime对象格式化为字符串,并且此功能在Firefox和Chrome浏览器中工作正常,但不适用于IE和Safari。 有谁知道该怎么做才能使其与Safari和IE一起使用?

日期对象在Chrome中看起来像这样:2019年3月25日星期一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 :(得分:0)

如果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

如果尝试使用包含连字符的字符串实例化Date对象,则在Safari中可能会得到NaN,如下所示:

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>");