调整JavaScript日期和时间

时间:2013-01-31 20:09:27

标签: javascript jquery time

  

可能重复:
  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);
});

2 个答案:

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

http://www.jslab.dk/library/date.format