如何在我的网页上显示不同时区的当前时间?

时间:2015-04-25 22:07:31

标签: javascript timezone

我想显示我在我的网页上选择的时区的时间。我找到了显示当前时间的方法http://www.webestools.com/ftp/ybouane/scripts_tutorials/javascript/date_time/date_time.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Display Date and Time in Javascript</title>
        <script type="text/javascript" src="date_time.js"></script>
    </head>
    <body>
            <span id="date_time"></span>
            <script type="text/javascript">window.onload = date_time('date_time');</script>
    </body>
</html>

和JS:

function date_time(id)
{
        date = new Date;
        year = date.getFullYear();
        month = date.getMonth();
        months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'Jully', 'August', 'September', 'October', 'November', 'December');
        d = date.getDate();
        day = date.getDay();
        days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
        h = date.getHours();
        if(h<10)
        {
                h = "0"+h;
        }
        m = date.getMinutes();
        if(m<10)
        {
                m = "0"+m;
        }
        s = date.getSeconds();
        if(s<10)
        {
                s = "0"+s;
        }
        result = ''+days[day]+' '+months[month]+' '+d+' '+year+' '+h+':'+m+':'+s;
        document.getElementById(id).innerHTML = result;
        setTimeout('date_time("'+id+'");','1000');
        return true;
}

但如果我理解正确 - 它总是显示页面查看器时区的当前时间。所以当有人从那里登录时,例如澳大利亚 - 他会看到他的结果,来自波兰的人会看到完全不同的东西。我想在网页上显示固定时区的当前时间,比方说,例如在纽约。我应该如何修改此脚本以获得预期的结果?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用moment-timezone将时间转换为不同的时区

这里示例:

function toTimeZone(time, zone) {
    var format = 'YYYY/MM/DD HH:mm:ss ZZ';
    return moment(time, format).tz(zone).format(format);
}
相关问题