Date.getTimezoneOffset Javascript возвращает 0 при работе на удаленном сервере - PullRequest
0 голосов
/ 24 мая 2018

Я нахожусь на Филиппинах, и выполнение этой строки кода в localserver / localhost возвращает корректное смещение часового пояса.

console.log(new Date().getTimezoneOffset());
// output: -480

Но когда я запускаю этот код на удаленном сервере, он выдает 0.

Моя настройка локального сервера: Mac os, node.js и mongodb

Наша удаленная настройка сервера: экземпляр ec2 в веб-сервисах Amazon (AWS), работающий с ubuntu os, node.js и mongodb.

Кто-нибудь здесь знает, как получить смещение часового пояса при запуске с удаленного сервера?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Попробуйте проверить часовой пояс вашего сервера:

timedatectl

Я думаю, это может быть "Etc / UTC (UTC, +0000)".Если это так, это означает, что ваш сервер в настоящее время настроен на UTC.Это не физическое место, где расположен ваш сервер.Мы можем установить для нашего компьютера любой часовой пояс.

Однако для сервера я рекомендую оставить часовой пояс в формате UTC.Таким образом, мы можем сделать любые вычисления, относящиеся к дате / времени, на основе стандартной единицы.Мы должны хранить значения даты и времени в базе данных как время UTC.

0 голосов
/ 24 мая 2018

Вы должны установить правильный часовой пояс на вашем сервере.На сервере Ubuntu вы можете ввести следующую команду:

sudo dpkg-reconfigure tzdata

Выберите правильный часовой пояс и получите правильный часовой пояс при использовании: new Date().getTimezoneOffset()


Если вам нужно обрабатывать несколько часовых поясов, я рекомендую использовать момент-часовой пояс , чтобы сделать это легко.

const moment = require('moment');
const losAngeles = moment().tz('America/Los_Angeles');
console.log(losAngeles.format());

const manila = moment().tz('Asia/Manila');
console.log(manila.format());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...