时间戳到日期和时间javascript

时间:2013-10-25 18:02:00

标签: javascript date datetime

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

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

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

我是否使用getMonth()等格式化它,还是最好将其拆分? 我在这里已经阅读了几个不同的答案,但我不确定哪种情况最适合这种情况。在过去,我只会使用类似的东西:

d = new Date(myDate);

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

在我不确定这是最好的方法的情况下?

3 个答案:

答案 0 :(得分: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()]);

这有意义吗?

答案 1 :(得分:2)

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

使用built in format options为您提供正确的输出,例如:

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

答案 2 :(得分: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');

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