我有一个时间戳,例如'2013-01-21T01:23:44' 我这样做是为了得到时间
var time1= new Date('2013-01-21T01:23:44');
var time2 = time1.toLocaleTimeString();
这是返回时间,但是01:23:44。我如何以不返回秒数的方式执行此操作。
答案 0 :(得分:4)
> var time1= new Date('2013-01-21T01:23:44');
在ES5之前,Date构造函数对字符串的解析依赖于实现,但仍有许多浏览器在使用中无法正确解析上述内容。一个简单的解决方案是自己解析它,并指出上述内容将被符合ES5的实现视为UTC,因此:
function parseUTCDateString(s) {
var b = s.split(/\D/g);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5], 0));
}
localeTimeString函数取决于实现,也取决于系统设置。它旨在表示为特定用户量身定制的时间,因此您不应该弄乱它,因为您无法确定其格式(并且它应该是用户将理解的东西,而不是您认为的某些东西) 他们会明白的。)
如果你想把时间写成hh:mm ap,请使用一个小函数:
function formatHHMM(date) {
function z(n){return (n<10?'0':'') + n;}
var h = date.getHours();
return z(h%12) + ':' + z(date.getMinutes()) + ' ' + (h<12?'AM':'PM');
}
所以你有:
formatHHMM(parseUTCDateString('2013-01-21T01:23:44'))); // 11:23 AM
您的结果可能会有所不同,这取决于您的时区,因为该字符串被视为UTC。
答案 1 :(得分:3)
使用正则表达式修剪它怎么样?
time2 = time1.toLocaleTimeString().replace(/(.*)\D\d+/, '$1');
答案 2 :(得分:1)
删除最后3个字符:
str = str.slice(0, -3);
答案 3 :(得分:0)
我不知道您是否愿意使用其他库,但是对于日期和时间格式来说,momentjs非常棒。您可以在此处找到该网站:http://momentjs.com/ 您只需更改
等格式即可var time1 = moment().format("hh:mm")