【问题标题】:How to convert a timestamp string to local time using javascript?如何使用javascript将时间戳字符串转换为本地时间?
【发布时间】:2014-10-15 13:10:19
【问题描述】:

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

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

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

谢谢

【问题讨论】:

  • 感谢您的链接,但我认为这不是我想要的,我不想检测用户的时区,而是我正在寻找一种将我的时间戳转换为 javascript 日期对象的方法可以根据当地时区呈现。

标签: javascript jquery timezone timestamp


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果您要使用 AngularJS,将 1408648665 转换为 Thu, 21 Aug 2014 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/

    【讨论】:

    • 谢谢@admix。不是我在这里需要的。 :)
    【解决方案3】:

    你可以试试这个

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

    【讨论】:

    • 感谢您的链接,但我认为这不是我想要的,我不想检测用户的时区,而是我正在寻找一种将我的时间戳转换为 javascript 日期对象的方法可以根据当地时区呈现。
    • @RaghvendraMishra:- 更新了我的答案。希望这就是你要找的! :)
    • 再次感谢@RT :- 但我没有单独的年、月和日期,我只有Thu Aug 21 2014 22:09:23 GMT+0530 (India Standard Time). 格式的时间戳,并希望直接将其转换为特定用户的时间戳时区设置。
    猜你喜欢
    • 2012-10-03
    • 1970-01-01
    • 2020-11-22
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多