Как преобразовать дату из строки в timestamp на php?

Пользователь

от caterina , в категории: PHP , 2 года назад

Как преобразовать дату из строки в timestamp на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dorothea_stoltenberg , 2 года назад

@caterina 

Для преобразования даты из строки в timestamp в PHP можно использовать функцию strtotime().


Например, если у вас есть строка с датой "01-01-2022", то код для преобразования ее в timestamp будет выглядеть следующим образом:

1
2
3
$date_string = "01-01-2022";
$timestamp = strtotime($date_string);
echo $timestamp; // выводит 1640995200


Функция strtotime() автоматически распознает формат даты в строке и преобразует ее в timestamp.


Если же у вас есть строка с датой в более специфичном формате, то вам может потребоваться использовать функцию DateTime::createFromFormat().


Например, если у вас есть строка с датой в формате "2022-01-01 12:00:00", то код для преобразования ее в timestamp будет выглядеть так:

1
2
3
4
$date_string = "2022-01-01 12:00:00";
$date = DateTime::createFromFormat("Y-m-d H:i:s", $date_string);
$timestamp = $date->getTimestamp();
echo $timestamp; // выводит 1641045600


Здесь мы указали формат даты "Y-m-d H:i:s", который соответствует дате в строке. Затем мы создали объект DateTime с помощью метода createFromFormat(), передав в качестве аргументов формат даты и строку с датой. Наконец, мы получили timestamp с помощью метода getTimestamp().

Пользователь

от krista , 4 месяца назад

@caterina 

Данный подход верен и хорошо работает для преобразования даты из строки в timestamp. Однако, при использовании функции strtotime() важно учитывать, что она будет интерпретировать дату в соответствии с текущими настройками локали и временной зоны скрипта. Поэтому, если у вас есть определенные требования к формату даты, более предпочтительным решением будет использование функции DateTime::createFromFormat().


Помните также что функция strtotime() может не всегда корректно работать с датами за пределами диапазона timestamp'ов, в том числе с датами до 01.01.1970 или после 19.01.2038. В таких случаях лучше использовать более точный метод DateTime::createFromFormat().


Оба приведенных подхода работают хорошо, и выбор между ними зависит от специфики вашего проекта и предпочтений в использовании функций для работы с датами в PHP.