вычесть 6 часов от даты ('g: i a', strtotime ($ time_date_data)); - PullRequest
10 голосов
/ 21 ноября 2011

Я использую следующий код для преобразования универсального временного кода в нечто более удобное для пользователя.

$meeting_time = date('g:i a', strtotime($time_date_data));

Но теперь мне нужно вычесть 6 часов из времени встречи.Должен ли я сделать это после кода выше, или я могу использовать его в той же функции даты?

Ответы [ 5 ]

23 голосов
/ 21 ноября 2011
$meeting_time = date('g:i a', strtotime($time_date_data) - 60 * 60 * 6);

String-to-time (strtotime) возвращает метку времени Unix в секундах (с начала эпохи), поэтому вы можете просто вычесть 21600 секунд, прежде чем преобразовать их обратно в указанный формат даты.

6 голосов
/ 21 ноября 2011

Другой подход:

$meeting_time = date('g:i a', strtotime('-6 hours', strtotime($time_date_data)));
6 голосов
/ 21 ноября 2011

Попробуйте это:

// 6 hours, 3600 seconds in an hour
$meeting_time = date('g:i a', strtotime($time_date_data) - 6 * 3600);
3 голосов
/ 24 января 2017

Путь ОО PHP:

$date = new DateTime(); // current time
echo 'Current: '. $date->format('Y-m-d H:i:s') . "\n";
$date->sub(new DateInterval('PT3H55M10S'));
echo $date->format('Y-m-d H:i:s') . "\n";

Для суктрака 6 часов:

$date = new DateTime('2017-01-20'); // pass $time_date_data to here
$date->sub(new DateInterval('PT6H'));
2 голосов
/ 21 ноября 2011

Вы должны быть в состоянии сделать это:

$meeting_time = date('g:i a', strtotime($time_date_data));
date_add($meeting_time, - date_interval_create_from_date_string('6 hours'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...