как применять UTC в datestring в php?Как конвертировать datetime, применяя UTC offset в php?
Пример кода:
$sample_date = "2016-01-01 01:00:00 +01:00";
Как преобразовать этот в:
$sample_date = "2016-01-01 02:00:00";
как применять UTC в datestring в php?Как конвертировать datetime, применяя UTC offset в php?
Пример кода:
$sample_date = "2016-01-01 01:00:00 +01:00";
Как преобразовать этот в:
$sample_date = "2016-01-01 02:00:00";
Один из способов быть, чтобы написать пользовательскую функцию, как показано ниже:
$thisDate = "2016-01-01 01:00:00 +01:00";
$seperated = explode('+', $thisDate);
$splitHours = explode(':',$seperated[1]);
$hoursToAdd = isset($splitHours[0]) ? (($splitHours[0]!='0' && $splitHours[0]!='00') ? $splitHours[0].'H' : '') : '';
$minutesToAdd = isset($splitHours[1]) ? (($splitHours[1]!='0' && $splitHours[1]!='00') ? $splitHours[1].'S' : '') : '';
$addtionString = ($splitHours[0]!='' || $splitHours[1]!='') ? 'PT'.$hoursToAdd.$minutesToAdd : '';
$date = new DateTime($seperated[0]);
if($addtionString != '') {
$date->add(new DateInterval($addtionString));
}
echo $date->format('Y-m-d H:i:s') . "\n";
Не может подумайте о любой встроенной функции, которая уже делает это.
Спасибо, но он возвращает' 2016-01-01 08: 00: 00' вместо '2016-01-01 02: 00: 00' то же самое, что и преобразование' +01: 00' в секундах и добавить, все еще вывод - '2016-01-01 08: 00: 00'. Я не знаю, почему. – ralphjason
Извините, просто неправильно понял ваш вопрос. Посмотрите на обновленные ан. –
Вы получите результат ниже
$date = date('Y-m-d H:i:s',(strtotime($sample_date)+3600));
echo $date;
Странный запрос ... Для чего вам это нужно? '2016-01-01 01:00:00 +01: 00' ==' 2016-01-01 02:00:00 +02: 00', а не '2016-01-01 02: 00: 00' .. –
@ Glavić Да, ваша точка зрения верна, но я хотел бы применить смещение UTC ('+01: 00') к основному дате, которое является' 2016-01-01 01:00:00) ' – ralphjason
Итак, вы говорят, что '2016-01-01 01: 00: 00' является UTC =' +00: 00'? Потому что '+01: 00' не может быть UTC ... –