来自毫秒和时区的Javascript日期[重复]

Posted

技术标签:

【中文标题】来自毫秒和时区的Javascript日期[重复]【英文标题】:Javascript Date from milliseconds and timezone [duplicate] 【发布时间】:2012-11-16 21:04:07 【问题描述】:

可能重复:How to format a JSON date?Parsing Date from webservice

对不起,如果这个问题已经被问过。我环顾四周,但一直找不到。是否有一种快速便捷的方法可以仅使用 javascriptjQuery(不包括额外的 jQuerylibraries)将“json”日期转换为人类友好的格式?

日期格式如下:

creationDate: "/Date(1346713200000+0100)/"

谢谢

【问题讨论】:

没有像 json 日期 这样的东西。您只需要去掉额外的非数字(+ 除外)字符并在 javascript 中创建一个日期。请参阅此问题寻求帮助:***.com/questions/11024367/… 你不能这样做:var d=new Date(1346713200000+0100);? 是的 >var d = new Date(1346713200000+0100) >d 2012 年 9 月 3 日星期一 19:00:00 GMT-0400(东部夏令时间) @Ahren:“json”日期不是指Javascript日期吗? (首字母缩写词.. JSON!).. 我只是好奇,你会怎么称呼它? 【参考方案1】:
> var maybeDateString = "/Date(1346713200000+0100)/";
> fromDateString(maybeDateString)
Tue Sep 04 2012 02:00:00 GMT+0200

function fromDateString(str) 
    var res = str.match(/\/Date\((\d+)(?:([+-])(\d\d)(\d\d))?\)\//);
    if (res == null)
        return new Date(NaN); // or something that indicates it was not a DateString
    var time = parseInt(res[1], 10);
    if (res[2] && res[3] && res[4]) 
        var dir = res[2] == "+" ? -1 : 1,
            h = parseInt(res[3], 10),
            m = parseInt(res[4], 10);
        time += dir * (h*60+m) * 60000;
    
    return new Date(time);

【讨论】:

以上是关于来自毫秒和时区的Javascript日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在Javascript中将日期转换为其他时区[重复]

iOS日期格式,以毫秒和时区为准

根据时区自定义格式的javascript日期时间[重复]

在初始化期间创建具有不同时区的新 JavaScript 日期对象 [重复]

在用户的时区中获取用户的日期和时间 [重复]

Joda Time 将时区日期时间转换为毫秒