2016-04-25 171 views

回答

0

你看过Moment.js吗? http://momentjs.com/这是一个方便的日期对象包装器,可以简化日期对象的操作。特别是,提供的local()函数将为您提供您在此需要的内容。

所有你需要做的就是从NPM安装一下,然后在顶部这样它包括在你的js文件:

var moment = require("moment"); 

然后你time_utc变量更改为本地所有你需要做的是:

var time_utc="2016-04-25 20:19:00.307"; 
document.write("Local date:"+moment(time_utc).local()); 

正如有人建议我之前,包含一个简单的一次函数的整个库是不明智的。作为一个免责声明,我的工作要求我在整个大型项目中进行许多日期时间计算和转换,因此在我的情况下,包含一个易于使用的库是我的首选。但是,如果你只需要使用它一次,我的答案可能不是最好的。

+0

能我用纯JS做它? – Castle

+0

你的意思是模板引擎还是普通的JavaScript?如果你的意思是模板引擎,我不确定我以前从未使用它。如果你的意思是简单的JavaScript,那么是的,它是一个JS库,你所要做的就是用npm安装它,然后包含语句var moment = require(“moment”);在你的js文件的顶部。 – Cameron637

+0

在此处查看文档:http://momentjs.com/docs/ – Cameron637

0

您需要在JS将其转换为当地日期前追加UTC字符串:

var date = new Date('25/04/2016 4:52:48 PM UTC'); 
date.toString() // "Mon Apr 25 2016 09:52:48 GMT-0700 (PDT)" 
+0

是不是我已经做了? – Castle

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) 
0

如果使用moment.js,你可以使用:

var time_utc = "2016-04-25 20:19:00.306671"; 

var localDate = moment.utc(time_utc).local(); 
相关问题