JavaScript UTC到LocalTime的转换

时间:2014-02-05 13:26:14

标签: javascript jquery

我想将UTC日期时间转换为本地时区。

我正在使用下面给出的函数(即我从stackoverflow链接中找到):

function convertUTCDateToLocalDate(date) {

    alert(date); // gives Wed Feb 05 2014 12:43:46 GMT+0530 (India Standard Time) - This is UTC
    var newDate = new Date(date.getTime());
    alert (newDate); // gives Wed Feb 05 2014 12:43:46 GMT+0530 (India Standard Time)

    alert("getTimezoneOffset : " + date.getTimezoneOffset()); // gives getTimezoneOffset : -330 
    alert("getHours : " + newDate.getHours()); // gives getHours : 12
    alert("getMinutes : " + newDate.getMinutes()); // getMinutes : 43

    var offset = date.getTimezoneOffset() / 60;
    var offset2 = date.getTimezoneOffset();
    var hours = date.getHours();
    var mins = date.getMinutes();

    newDate.setHours(hours - offset);

    alert("getHours after : " + newDate.getHours()); // gives getHours after : 17
    alert("getMinutes after : " + newDate.getMinutes()); // gives getMinutes after : 43
    // See, the minutes are not updated
    return newDate;
}

在这里,我正在设定小时但不是分钟。如何设置从UTC到本地的日期和时间(小时,分钟和秒)?

2 个答案:

答案 0 :(得分:0)

以下是相同的简单示例

var d=new Date("2014-02-06T13:14:15Z");
alert(d.toString());

答案 1 :(得分:0)

最后,我使用下面的用户定义函数开始工作:

function utcToLocal(utc) {
    // Create a local date from the UTC string
    var t = new Date(Number(utc));

    // Get the offset in ms
    var offset = t.getTimezoneOffset() * 60000;

    // Subtract from the UTC time to get local
    t.setTime(t.getTime() - offset);

    // do whatever
    var d = [t.getFullYear(), t.getMonth(), t.getDate()].join('/');
    d += ' ' + t.toLocaleTimeString();
    return d;
}

我是从堆栈溢出链接中找到的,但不幸的是我关闭了它,所以我在这里放置了函数的代码。