使用 JavaScript 格式化日期

format date using javascript

本文关键字:日期 格式化 JavaScript 使用      更新时间:2023-09-26

JavaScript中的格式日期有问题,这是我的函数代码

   //originalDate = '2016-03-02 09:12:14.989522';
   var d = new Date(originalDate),
        month = d.getMonth() + 1,
        day =d.getDate(),
        year = d.getFullYear(),
        hour = d.getHours(),
        min = d.getMinutes();
    alert([day, month, year].join('-')+' '+[hour,min].join(':'));

my original date ='2016-03-02 09:12:14.989522';而且我的代码总是return 'Nan-Nan-Nan Nan:Nan',看到我传递的原始日期未知。有什么帮助吗?

注意:我的日期数据库中的数据类型是timestamp

简单的解决方案:将date字符串中的空格替换为"T"。

(但是,为了在技术上完全正确,您还应该在末尾包含一个时区指示器,或者一个额外的"Z"来表示 UTC,即协调世界时,或者"+hh:mm"或"-hh:mm"来表示时区偏移量。

MDN 网站Date.parse()写道:

由于日期字符串解析的差异,...结果不一致,尤其是在不同的 ECMAScript 实现中,其中像"2015-10-12 12:00:00"这样的字符串可能会被解析为 NaN、UTC 或本地时区。

日期时间字符串可能采用 ISO 8601 格式。

上面提到的ISP 8601规范写道:

格式如下。此处显示的组件必须完全存在,并且恰好带有此标点符号。请注意,"T"字面意思出现在字符串中,表示 ISO 8601 中指定的时间元素的开头。

完整的日期加上小时、分钟、秒和 第二个 YYYY-MM-DDThh:mm:ss.sTZD (例如 1997-07-16T19:20:30.45+01:00)

这是您重写的代码,将date中的空格替换为"T"。如果这在您的浏览器中不起作用,请在 date 的末尾添加"Z"或时区偏移量。

var date ='2016-03-02T09:12:14.989522';
var d = new Date(date),
  month = d.getMonth() + 1,
  day = d.getDate(),
  year = d.getFullYear(),
  hour = d.getHours(),
  min = d.getMinutes();
document.write([day, month, year].join('-') + ' ' + [hour, min].join(':'));

代码中的 date 参数是Date对象吗?那行不通。Javascript中没有这样的构造函数。不过你可以使用date.now()

在此处查看有效的构造函数以获取Date https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date

首先解析原始日期,然后在代码中使用它。

var MilliSecond=Date.parse(originalDate);
var d=new Date(MilliSecond),
month=d.getMonth()+1,
day=d.getDay(), .......