我有一个JSP页面,我在其中将时间戳存储在数据库中,其字符串格式为Thu Aug 21 2014 22:09:23 GMT+0530 (India Standard Time)
。
当然,我能够在页面中显示它,但我正在寻找一个javascript解决方案,可以根据用户的本地时区转换此时间戳。
有办法做到这一点吗?或者对于这样的时间戳,这是不可能的?非常感谢任何帮助,我的问题可能听起来很愚蠢,因为我仍然熟悉javascript。
由于
答案 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");
});