如何使用javascript将时间戳字符串转换为本地时间?

时间:2014-08-21 19:09:08

标签: javascript jquery timezone timestamp

我有一个JSP页面,我在其中将时间戳存储在数据库中,其字符串格式为Thu Aug 21 2014 22:09:23 GMT+0530 (India Standard Time)

当然,我能够在页面中显示它,但我正在寻找一个javascript解决方案,可以根据用户的本地时区转换此时间戳。

有办法做到这一点吗?或者对于这样的时间戳,这是不可能的?非常感谢任何帮助,我的问题可能听起来很愚蠢,因为我仍然熟悉javascript。

由于

4 个答案:

答案 0 :(得分:10)

我自己弄清楚了,我能够完成我所需要的。将timestamp从数据库传递到var new Date(timestamp)将其转换为本地时间,它还会处理时区和偏移。 感谢您的时间专家! :)

答案 1 :(得分:1)

我认为这就是您正在寻找的内容:https://gist.github.com/kmaida/6045266

答案 2 :(得分:1)

你可以试试这个

var timezone = new Date().getTimezoneOffset();

来自MDN

  

时区偏移是UTC和之间的差异,以分钟为单位   当地时间。请注意,这意味着如果偏移是正数   当地时区落后于UTC,如果未来则为负。例如,   如果您的时区是UTC + 10(澳大利亚东部标准时间), - 600   将被退回。夏令时会阻止此值   即使对于给定的语言环境也是常量

此处还有一篇有趣的文章可以帮助您: - Auto detect a time zone with JavaScript

编辑:

var d = new Date(myYear, myMonth, myDate);
d.setTime( d.getTime() + d.getTimezoneOffset()*60*1000 );

答案 3 :(得分:1)

如果您打算使用AngularJS,将从1408648665转换为2014年8月21日星期四19:17:45 GMT将更加轻松和直接

    //html
    <div ng-controller="TimeCtrl">
      Date: {{timeStamp + '000' | date: 'medium'}}
    </div>

    //js
    var app = angular.module('myApp', []);
    app.controller('TimeCtrl', function time($scope) {
      $scope.timeStamp = 1408648665;
      console.log("hello");
    });

小提琴:http://jsfiddle.net/hq0ry1vm/2/