Используя strtotime и принимая во внимание часовой пояс - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть система, работающая на PHP, и я использую CodeIgniter (если на этот вопрос есть ответ от CI, я тоже был бы счастлив).

Мне часто нужно вычислить временную метку таких дат, как «этот четверг» или «этот понедельник». В настоящее время я использую strtotime("this Thursday"), и это дает мне то, что я прошу.

У меня есть сервер в EST. Это 01:00 (1:00 утра), рано утром в пятницу, 24 февраля 2012 года в Нью-Йорке.

У меня есть пользователь, который указал свой часовой пояс на тихоокеанское время. Прямо сейчас 22:00 (22:00) поздним вечером в четверг, 23 февраля 2012 года в Сан-Франциско.

Я использую strtotime("this Thursday"). Поскольку мой сервер находится в EST, он возвращает мне метку времени на 1 марта 2012 года. Я хотел бы принять во внимание часовой пояс пользователя. Для моего пользователя «этот четверг» должен вернуться 23 февраля 2012 года.

Могу ли я использовать для нее strtotime("this Thursday"), и если да, то как мне указать целевой часовой пояс?

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

Ответы [ 3 ]

1 голос
/ 23 февраля 2012

Я только что понял, что strtotime принимает параметр $ now.Я могу указать для параметра $ now значение текущего времени в часовом поясе пользователя, и strtotime возвращает мне то, что мне нужно.

1 голос
/ 23 февраля 2012

manual for strtotime напрямую ссылается на date_default_timezone_set. Я бы взял это как подсказку, чтобы использовать это.

0 голосов
/ 23 февраля 2012

Это взятая строка с php сайта

<?php
date_default_timezone_set('Asia/Shanghai');

$first_day_of_month = date('Y-m',time()) . '-01 00:00:01';
$t = strtotime($first_day_of_month);
print_r(array(
            date('Y-m',$t),
            date('Y-m',strtotime('- 1 month',$t)),
            date('Y-m',strtotime('- 2 month',$t)),
));
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...