如何在javascript中获取没有秒的区域设置时间?

时间:2014-01-23 02:11:47

标签: javascript jquery datetime

我有一个时间戳,例如'2013-01-21T01:23:44' 我这样做是为了得到时间

var time1= new Date('2013-01-21T01:23:44');
var time2 = time1.toLocaleTimeString();

这是返回时间,但是01:23:44。我如何以不返回秒数的方式执行此操作。

4 个答案:

答案 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")