看起来很简单吗?没有读过这个http://dygraphs.com/date-formats.html - 真是一团糟!
var time_utc="2016-04-25 20:19:00.306671";
document.write("Local date:"+new Date(time_utc+" UTC")); // Firefox 44.0.2: Invalid Date
如何以上述格式打印调整为当地时间的日期?
答案 0 :(得分:0)
你看过Moment.js吗? http://momentjs.com/它是一个方便的日期对象包装器,可以轻松地进行日期对象操作。特别是,提供的local()函数将为您提供所需的内容。
您只需从npm安装片刻,然后将其包含在顶部的js文件中,如下所示:
var moment = require("moment");
然后将time_utc变量更改为local,您只需:
var time_utc="2016-04-25 20:19:00.307";
document.write("Local date:"+moment(time_utc).local());
正如有人之前建议的那样,将整个库包含在一个简单的一次性函数中是不明智的。作为免责声明,我的工作要求我在整个大型项目中进行许多日期时间计算和转换,因此在我的案例中包括一个易于使用的库是首选。但是,如果你只需要一次使用它,我的回答可能不是最好的。
答案 1 :(得分:0)
您需要将UTC附加到字符串,然后再将其转换为js中的本地日期:
var date = new Date('25/04/2016 4:52:48 PM UTC');
date.toString() // "Mon Apr 25 2016 09:52:48 GMT-0700 (PDT)"
答案 2 :(得分:0)
您提供的文章在页面中间提到了
使用连字符( - )而不是斜杠(/)可以在WebKit浏览器中使用,但是 不在IE或FF中。注意YYYY-MM-DD的UTC解析!
以及
不要尝试指定毫秒。只有最新版本的Chrome才能使用 了解你。
使用日期2016-04-25 20:19:00.306671
,您可以使用连字符和毫秒。您可以稍微修改一下time_utc字符串,使其兼容,
var time_utc = "2016-04-25 20:19:00.306671";
time_utc = time_utc.replace(/-/g, "/");
time_utc = time_utc.split(".").shift();
var d = new Date(time_utc);
d.toString();
以上代码输出,
Mon Apr 25 2016 20:19:00 GMT+0200 (CEST)
答案 3 :(得分:0)
如果您使用moment.js,则可以使用:
var time_utc = "2016-04-25 20:19:00.306671";
var localDate = moment.utc(time_utc).local();