2014-12-18 2 views
-2

Мне нужно будет преобразовать JS-функцию ниже в точную функцию на PHP.конвертировать новую дату(). GetTimezoneOffset() в PHP

var user_timezone_offset = new Date().getTimezoneOffset()*60; 

Это мой PHP код, но $ user_timezone_offset возвращает другое значение, чем JS:

$TZ = 'America/Chicago'; 
$user_localtime = new DateTime("now", new DateTimeZone($TZ)); 
$user_timezone_offset = $user_localtime->getOffset(); 

Возвращаемые значения должны быть точно такой же в обоих случаях. Теперь один 3600 (от PHP), а второе значение отрицательное -3600 (от JS)

+0

что делает 'новые дисплеи date' в консоли JavaScript? – Sebas

ответ

2

new Date().getTimezoneOffset() дает вам смещение за считанные минуты, поэтому просто умножьте это на 60, чтобы получить смещение в секундах, что и использует PHP ,

var user_timezone_offset = new Date().getTimezoneOffset() * 60; 
+0

Это возвращает то же значение, но не точное значение. В моем часовом поясе PHP func. return 3600 и javascript -3600 (= отрицательный). Мне нужно будет вернуть то же самое значение (положительное/отрицательное значение). Спасибо. – JohnJohnm1

-1

Эти два языка используют разные позиции при расчете разницы, такие как utc-tz или tz-utc. Вам нужно умножить на «-60» на стороне javascript.

var user_timezone_offset = new Date().getTimezoneOffset() * -60;