可能重复:
Formatting a date in JavaScript
How to get datetime in javascript?
我找到了一个脚本,用于显示不同时区的当前日期和时间。我无法弄清楚如何更改格式。目前,它显示为MM/DD/YYYY HH:MM:SS AM/PM
,我希望它只显示为HH:MM AM/PM
我比jQuery更熟练的jQuery,这让我感到困惑:
$(document).ready(function() {
function calcTime(offset) {
currentDate = new Date();
utc = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000);
newDate = new Date(utc + (3600000*offset));
return newDate.toLocaleString();
}
function displayTimes() {
$("#chicago").html(calcTime("-6"));
$("#london").html(calcTime("+1"));
$("#shanghai").html(calcTime("+8"));
};
window.setInterval(displayTimes, 1000);
});
答案 0 :(得分:2)
罪魁祸首是以下几行。
return newDate.toLocaleString();
具体来说,toLocaleString()
您可以在此处了解有关该行的更多信息:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
快速的方法是使用.toTimeString()
而不是返回newDate.toLocaleString()或.toTimeString(),而是希望按照您的意愿进行打印。
e.g。
return newDate.getHours() + ':' newDate.getMinutes();
那会给你军事时间。
如果你想要am / pm显示,这可以为你做到
(newDate.getHours() > 11) ? 'pm' : 'am'
如果你想要时间美化,0是午夜12点,12点是中午。如果小时数大于12,你可以减去12。如果是0,你也可以将它设置为显示12.所有这些都可以这样做:
(newDate.getHours() === 0) ? 12 : ((newDate.getHours() > 12) ? newDate.getHours() - 12 : newDate.getHours());
绝对应该为newDate.getHours()使用var。说到变种......
请重新格式化您的vars: var currentDate = new Date(), utc = currentDate.getTime()+(currentDate.getTimezoneOffset()* 60000), newDate = new Date(utc +(3600000 * offset));
编辑:现在一起: 替换以下
return newDate.toLocaleString();
以下
return (newDate.getHours() === 0) ? 12 : ((newDate.getHours() > 12) ? newDate.getHours() - 12 : newDate.getHours()) + ' : ' + newDate.getMinutes() + ' ' + (newDate.getHours() > 11) ? 'pm' : 'am';
这是相当草率的,并且急忙写,但如果你使用var为newDate.getHours(),它将更容易阅读。
感谢。
答案 1 :(得分:-2)
var myDate= new Date();
myDate.format("h:mm tt");