タイムゾーンを理解するために多くの時間を費やしました。しかし、私はまだ混乱しています。サーバーのタイムゾーンでデータを送信する
デザイン:
1)クライアントとは異なるタイムゾーンにあるサーバー。
2)私は、APIの呼び出しで、次の情報を得た:
/API /設定/ V1 /システム/時間
{
"timeZoneOffset": -18000000, (milli sec)
"serverTimeUTC": 1485332569157,
"serverTime": "Wed Jan 25 03:22:49 EST 2017",
"timeZone": "Eastern Standard Time"
}
3)私は、サーバー上のアクセス権がありません。 (実際にコードを変更することはできません!)
4)私はクライアント側で完全なアクセス権を持っています。 (Javascriptを)
問題/要件:
- 私はクライアントの時間(PST、CSTなど)を取り、対応するサーバの時間でそれを送りたいです。 (サーバーがある時間帯に関係なく)(必ずしもUTCである必要はありません)。
マイコード:
私は次のことを試みたが、それでも私は行くよどこのように混乱してきました:
getServerTimeZone: function(newTime){
var _this = this;
$.ajax({
url: '/api/config/v1/system/time'
})
.done(function(data) {
if(!newTime){
newTime = new Date();
}
//Get Server Timezone and offset
//Offset is in milli sec. Converting it to hours
var serverTimeOffset = data.timeZoneOffset/(60 * 60 * 1000);
// Get current timezone offset for host device
var x = new Date();
var clientCurrentTimeZoneOffsetInHours = x.getTimezoneOffset()/60;
//Calculate the difference
var actualOffset = Math.abs(clientCurrentTimeZoneOffsetInHours - serverTimeOffset);
//Format actual time in relative to server time
serverTime = moment.utc(newTime).zone(actualOffset).format('MM/DD/YYYY h:mm A');
});
},
私はあなたを愛しています!どうもありがとうございます!どのように私はそれを逃した..ありがとう! – TechnoCorner
あなたの問題を解決してうれしいです。 – ngeksyo