web-dev-qa-db-ja.com

javascriptを使用してタイムスタンプ文字列を現地時間に変換する方法は?

Thu Aug 21 2014 22:09:23 GMT+0530 (India Standard Time)の形式の文字列としてデータベースに保存されているタイムスタンプを取得しているJSPページがあります。

もちろん、ページにそのまま表示することはできますが、ユーザーのローカルタイムゾーンに従ってこのタイムスタンプを変換できるJavaScriptのソリューションを探していました。

これを行う方法はありますか?または、そのようなタイムスタンプの場合、それは不可能ですか?どんな助けでも大歓迎です、私はまだjavascriptに精通しているので、私の質問はばかげているように聞こえるかもしれません。

ありがとう

7

私はそれを自分で理解し、必要なことを達成することができました。 timestampをデータベースからvarnew Date(timestamp)に渡すと、現地時間に変換され、タイムゾーンとオフセットも処理されます。時間の専門家に感謝します! :)

14

これがあなたが探しているものだと思います: https://Gist.github.com/kmaida/6045266

1
Programmer1994

あなたはこれを試すことができます

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

From [〜#〜] mdn [〜#〜]

タイムゾーンオフセットは、UTCと現地時間の差(分単位)です。これは、ローカルタイムゾーンがUTCより遅れている場合はオフセットが正であり、進んでいる場合は負であることを意味することに注意してください。たとえば、タイムゾーンがUTC + 10(オーストラリア東部標準時間)の場合、-600が返されます。夏時間は、特定のロケールでもこの​​値が一定になるのを防ぎます

また、ここにあなたを助けるかもしれない興味深い記事があります:-JavaScriptでタイムゾーンを自動検出する

編集:

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

AngularJSを使用する場合は、1408648665から2014年8月21日(木)19:17:45GMTに変換する方がはるかに簡単で簡単です。

    //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/

1
admix