0

我有这个时间戳:2013-03-22T12:25:19我需要转换为:10:41 AM on Mon 07 Oct

如果我使用toString()我得到:Fri Mar 22 2013 12:25:19 GMT+0000 (GMT)

将它转换为我想要的最简单的代码是什么?

我是使用getMonth()etc 来格式化它还是最好拆分它?我在这里阅读了一些不同的答案,但我不确定哪个最适合这种情况。在过去,我会简单地使用类似的东西:

d = new Date(myDate);

yyyy = d.getFullYear().toString();
mm = d.getMonth().toString();
dd = d.getDate().toString();
hh = d.getHours().toString();
mi = d.getMinutes().toString();

如果我不确定这是最好的方法吗?

4

3 回答 3

2

一种简单的方法是使用已经创建的库,例如 moment.js!

使用内置格式选项为您提供正确的输出,例如:

moment(yourDateStr).format("dddd, MMMM Do YYYY, h:mm:ss a");

于 2013-10-25T18:15:39.890 回答
2

你应该考虑date.js它是一个非常好的插件!

<html>
<script type="text/javascript" src="http://www.datejs.com/build/date.js"></script>
<script>
alert(new Date().toString("hh:mm tt"));
</script>
</html>

完美运行 - 现在适用于月份和工作日:

var now = new Date();
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

alert("Today is " + dayNames[now.getDay()] + ".");

var monthNames = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];

alert("The current month is " + monthNames[now.getMonth()]);

那有意义吗?

于 2013-10-25T18:12:18.947 回答
0

感谢您的回复,但我不想使用图书馆,因为我需要缩小尺寸。

我最终选择了这个:

function dateFormat(stamp){
  var d = new Date(stamp);
  var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
  var days = ['Mon','Tue','Wed','Thurs','Fri','Sat','Sun'];
  var month = months[d.getMonth()];
  var dayText = days[d.getDay()];
  var day = d.getDate();
  var hour = d.getHours();
  var min = d.getMinutes();
  var hours = d.getHours();
  var ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12;

  return hours + ':' + min + ' ' + ampm + ' on ' + dayText + ' ' + day + ' ' + month;
}
dateFormat('2013-03-22T17:25:19');

它是我想要的专家,但这有助于缩小尺寸。

于 2013-10-28T22:02:15.293 回答