如何在JavaScript中以正确的格式格式化日期

时间:2011-12-03 14:07:16

标签: javascript json datetime

我正在研究JavaScript并陷入一个小问题。

我在JSON回复1322919399447-0500

中收到此日期

我希望将其格式化为:6:50 PM, Dec 3rd 2011

4 个答案:

答案 0 :(得分:1)

我使用了这个方便的小date format addon,它对我来说效果很好。这个月甚至照顾了讨厌的互联网浏览器怪癖。

答案 1 :(得分:1)

我不确定这是不是最好的方式(我确定它不是,实际上),但实际上你可以将日期字符串变成一个js Date对象,然后根据你的需要拉出碎片进行操作:

var dateThing = new Date(1322919399447-0500);
dateThing.getFullYear(); // 2011
dateThing.getDay(); // 6
dateThing.getDate(); // 3
dateThing.getMonth(); // 11
dateThing.getHours(); // 8 (test for anything over 12, that indicates PM)
dateThing.getMinutes(); // 36

然后,您可以将这些部分连接成您自己的格式。就像我说的那样,可能有更好的方法,但这种方法很有效。

答案 2 :(得分:1)

Here是您的示例输入的代码段。它使用 Zoidberg 链接的script

此代码返回格式化的UTC日期。如果您需要本地日期,请从UTC:声明中删除return

function convertTime(dateString) {
  // get ms part from the string
  var milis = +dateString.substring(0, 13);
  // get timezone part as "# of hours from UTC", e.g. "-0500" -> -5
  var offset = +dateString.substring(13, 16);
  // move the time for "offset" number of hours (to UTC time)
  var date = new Date(milis - offset * 3600000);
  // using http://stevenlevithan.com/assets/misc/date.format.js
  return date.format("UTC:h:MM TT, mmm dS yyyy");
}

编辑:将+ offset *更改为- offset *,因为我们要将其规范化为UTC。

答案 3 :(得分:1)

这是我创建的类似日期格式函数,它使用与PHP日期函数相同的标志。

PHP date function in Javascript