2013-05-27 3 views
0

Моя проблема заключается в следующем: Я хочу показать непальское стандартное время на своем веб-сайте, поэтому я установил часовой пояс по умолчанию для моего веб-сайта в «Asia/kathmandu» с помощью команды: php_value date. часовой пояс «Азия/катманду» в файле htaccess.javascript function new Date() не работает

когда я отображать время использования каких-либо функций PHP как STRFTIME() или дата(), это показывает, непальцы стандартное время, Но когда я использую яваскрипта функции нового Date (<?php echo time()*1000; ?>), он отображает время моего личного ПК я использую для просмотра моего сайта. Как я могу отобразить правильное время с помощью функций даты javascript? Кто-нибудь может мне помочь?

+0

Javascript всегда будет показывать системную дату. если вам нужно время сервера, вам нужно получить дату или время с сервера. –

+0

http://stackoverflow.com/questions/439630/how-do-you-create-a-javascript-date-object-with-a-set-timezone-without-using-as – akonsu

+0

@ HarryBomrah-javascript Даты используют Значение времени UTC, которое по умолчанию основано на комбинации системных настроек для смещения часового пояса и текущего времени системы. – RobG

ответ

0

Использование

new Date(Date.NPT(year, month, day, hour, minute, second)) 
0

Вызов времени через AJAX с сервера. Это имеет преимущество в улучшении основного кода. Если вы снова измените время (например, если вы хотите использовать код для другого местоположения), вам нужно только изменить время в .haccess.

1

Ваша проблема связана с тем, что объекты даты javascript (фактически ECMAScript) основаны на UTC time value. Когда вы делаете:

new Date(<?php echo time()*1000; ?>) 

вы передаете значение времени UTC миллисекунды конструктору Date, который затем создает объект даты. Когда вы используете обычные методы Date для форматирования строки или используете Date.prototpye.toString или Date.prototype.toLocaleString, вы получите строку на основе локали клиента. Обратите внимание, что все эти строки зависят от реализации и широко варьируются для версии версии.

Если вы хотите часовой пояс сервера, используйте сервер, чтобы установить его. Или вы можете отправить смещение часового пояса в минутах, которое будет применено к местному времени, чтобы вернуться в непальское стандартное время (UTC + 5:45). Обратите внимание, что в ECMAScript смещение часового пояса - это минуты, которые нужно добавить к местному времени для получения UTC, тогда как более нормально определять смещение в минутах, которое должно быть добавлено в UTC, чтобы получить местное время.

Так, чтобы получить NST:

function toNST(timeValue) { 

    function z(n) {return (n<10? '0' : '') + n} 
    var d = new Date(); 
    var nstOffset = 5 * 60 + 45; 
    d.setMinutes(d.getMinutes() + d.getTimezoneOffset() + nstOffset); 

    return z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds()); 
} 

alert(toNST(+(new Date()))); // about 11:07:17 at the moment 
Смежные вопросы