我以time
的形式从数据库返回2015-03-13 02:08:18
它被设置为00:00时区,但我需要将其转换为用户的时间,以显示多少小时/分钟/秒'以前是。是否有一个简单的功能可以完成这项工作? (我知道,这可能已经回答了,但到目前为止我发现的所有例子都是相反的事情)
答案 0 :(得分:1)
只需在末尾添加Z
告诉JavaScript将其解析为UTC,并用T
替换该空格,以便在IE中工作(感谢@Salman A):
var timestampFromDatabase = '2015-03-13 02:08:18';
var dateInUsersTimezone = new Date(timestampFromDatabase.replace(' ', 'T') + 'Z');
例如,在加利福尼亚州:
new Date('2015-03-13T02:08:18Z');
// Thu Mar 12 2015 19:08:18 GMT-0700 (PDT)
答案 1 :(得分:1)
如果时区已知(例如+00:00
),那么您需要做的就是:
var d1 = new Date("2015-03-13T02:08:18+00:00");
var d2 = new Date();
var diff = d2 - d1;
// diff contains the number of milliseconds between the two dates
差异与用户时区无关。