Я использую следующий код для преобразования универсального временного кода в нечто более удобное для пользователя.
$meeting_time = date('g:i a', strtotime($time_date_data));
Но теперь мне нужно вычесть 6 часов от meeting_time. Должен ли я сделать это после кода выше или я могу работать с ним в ту же функцию даты?
Что-то вроде:
$meeting_time = date('g:ia' - 6, strtotime($time_date_data));
$meeting_time = date('g:i a', strtotime($time_date_data) - 60 * 60 * 6);
String-to-time (strtotime) возвращает Unix Time Stamp, который находится в секундах (начиная с Epoch), поэтому вы можете просто вычесть 21600 секунд, прежде чем преобразовывать его обратно в указанный формат даты.
Попробуй это:
// 6 hours, 3600 seconds in an hour $meeting_time = date('g:i a', strtotime($time_date_data) - 6 * 3600);
Другой подход:
$meeting_time = date('g:i a', strtotime('-6 hours', strtotime($time_date_data)));
Вы должны быть в состоянии сделать это:
$meeting_time = date('g:i a', strtotime($time_date_data)); date_add($meeting_time, - date_interval_create_from_date_string('6 hours'));
Путь OO PHP:
$date = new DateTime(); // current time echo 'Current: '. $date->format('Ymd H:i:s') . "\n"; $date->sub(new DateInterval('PT3H55M10S')); echo $date->format('Ymd H:i:s') . "\n";
Для sustract 6 часов:
$date = new DateTime('2017-01-20'); // pass $time_date_data to here $date->sub(new DateInterval('PT6H'));