我有这个时间戳: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();
在我不确定这是最好的方法的情况下?
答案 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');
它是我想要的专家,但这有助于缩小尺寸。