我有GMT时间格式,我使用以下方法将其更改为本地浏览器时间:
var newDate = new Date(GMTFromat);
mytime= newDate.toLocaleString();
输出结果为:
3/12/2010 1:02:00 PM
现在我想在javascript
中将12小时更改为24小时格式
例如:
3/12/2010 13:02:00
有什么建议吗?
由于
答案 0 :(得分:0)
enter code here
它是SO link
以上链接中的代码:
function to24Hour(str) {
var tokens = /([10]?\d):([0-5]\d):([0-5]\d) ([ap]m)/i.exec(str);
if (tokens == null) { return null; }
if (tokens[4].toLowerCase() === 'pm' && tokens[1] !== '12') {
tokens[1] = '' + (12 + (+tokens[1]));
} else if (tokens[4].toLowerCase() === 'am' && tokens[1] === '12') {
tokens[1] = '00';
}
return tokens[1] + ':' + tokens[2] + ":" + tokens[3];
}
编辑:
var date = "3/12/2010 8:45:59 AM";
var dateTime = date.split(" ");
var datePart = dateTime[0];
var timePart = dateTime[1] + " " + dateTime[2];
timePart = to24Hour(timePart);
var finalDate = datePart + timePart;
答案 1 :(得分:0)
这可以通过多种方式完成,但我想只使用replace
方法。你走了:
(new Date()).toLocaleString().replace(/(.+ )(\d+)(:.+)(\wM)/g, function replacer(match, p1, p2, p3, p4) {
return p1 + (p4 === "PM" ? (12 + Number(p2)) : p2) + p3;
});
答案 2 :(得分:-1)
$(function(){
alert(
moment("3/12/2010 1:02:00 PM", "M/DD/YYYY hh:mm:ss A").
format("M/DD/YYYY HH:mm:ss")
);
});
这里有12个时钟系统的小 hh 和24个时钟系统的 HH 。