Я потратил много времени, пытаясь понять временные интервалы. Но я все еще смущен.Отправить данные в серверном часовом поясе
Дизайн:
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
im рад, что он решил вашу проблему. – ngeksyo