Как получить время или дату в переменной формата datetime - PullRequest
0 голосов
/ 06 октября 2019

У меня есть такая переменная

$string = '2019-10-07T19:00:00+07:00';

, она в формате даты и времени ISO8601. Как я могу получить только дату или время?

или есть какой-либо способ конвертировать это в другой формат?

, например:

$str = '2019-10-07'

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 06 октября 2019

Самый простой способ - преобразовать вашу строку во время php (целое число), а затем отображать только год, месяц и день с этого времени.

 $string = '2019-10-07T19:00:00+07:00';
 echo $string;
 echo "</br>";
 echo date("Y-m-d", strtotime($string));

 > result :
 > 2019-10-07T19:00:00+07:00
 > 2019-07-10

https://www.php.net/manual/en/function.date.php

https://www.php.net/manual/en/function.strtotime.php

надеюсь, что это поможет

0 голосов
/ 07 октября 2019

Входная строка содержит информацию о часовом поясе (+07: 00). Класс DateTime гарантирует, что вы работаете с этим часовым поясом независимо от языковых настроек сервера.

$string = '2019-10-07T01:00:00+07:00';
$dt = date_create($string);

var_dump($dt);
//object(DateTime)#1 (3) { ["date"]=> string(26) "2019-10-07 01:00:00.000000" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+07:00" }

echo $dt->format('Y-m-d');
//2019-10-07

date () использует локальный часовой пояс сервера. Если это не соответствует часовому поясу входной строки, результат будет неправильным:

setlocale(LC_ALL, 'nl_NL');

$string = '2019-10-07T01:00:00+07:00';
echo date("Y-m-d H:i:s",strtotime($string));

Выход

2019-10-06 20:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...