преобразовать число в дату php
Преобразование форматов даты в PHP
Есть ли простой способ преобразовать один формат даты в другой в PHP?
$old_date = date(‘y-m-d-h-i-s’); // работает
$middle = strtotime($old_date); // возвращает false
Хотелось бы, чтобы код возвращал текущую дату. Что я делаю неправильно?
Ответ 1
Второй параметр date() должен быть точной меткой времени (секунды с 1 января 1970 г.). Вы же передаете строку, которую date() не может распознать.
Можно использовать strtotime() для преобразования строки даты в метку времени. Однако даже strtotime() не распознает y-m-d-h-i-s формат.
PHP 5.3 и выше
PHP 5.2 и ниже
// возвращает текущую дату и время
$old_date = date(‘l, F d y h:i:s’);
Ответ 2
Самый простой способ сделать это:
Это позволяет избежать использования strtotime, с которой иногда может быть сложно работать.
Если вы не переходите из одного формата даты в другой, а просто хотите, чтобы текущая дата (или datetime) была в определенном формате, это еще проще:
Ответ 3
Основы
Т о ж е самое в одной строке:
$new_date_format = date(‘Y-m-d H:i:s’, strtotime(‘2021-07-01T22:35:17.02’));
С использованием DateTime()
$date = new DateTime(‘2021-07-01T22:35:17.02’);
Работа с отметками времени Unix
date() принимает временную метку Unix в качестве второго параметра и возвращает отформатированную дату:
$new_date_format = date(‘Y-m-d H:i:s’, ‘1234567890’);
DateTime() работает с отметками времени Unix, добавляя символ « @» перед отметкой времени:
$date = new DateTime(‘@1234567890’);
Разделите substr на 1000
Поскольку метка времени слишком велика для 32-битных систем, чтобы выполнить математические вычисления, нужно будет использовать библиотеку BCMath для выполнения математических расчетов в виде строк:
$timestamp = bcdiv(‘1234567899000’, ‘1000’);
Чтобы получить временную метку Unix, можно использовать strtotime() :
С DateTime () используетс я DateTime::getTimestamp()
$date = new DateTime(‘2021-07-01T22:35:17.02’);
Если вы используете PHP 5.2, можно использовать параметр форматирования «U»:
$date = new DateTime(‘2021-07-01T22:35:17.02’);
Работа с нестандартными и неоднозначными форматами даты
К сожалению, не все даты, с которыми приходится работать разработчику, имеют стандартный формат. К счастью, в PHP 5.3 появилось решение для этого. DateTime::createFromFormat() позволяет нам сообщить PHP, в каком формате находится строка даты, чтобы ее можно было успешно преобразовать в объект DateTime для дальнейших манипуляций.
$date = DateTime::createFromFormat(‘F-d-Y h:i A’, ‘April-18-1973 9:48 AM’);
В PHP 5.4 мы получили возможность делать доступ к членам класса при создании экземпляра, что позволяет нам превратить наш DateTime() в однострочный код:
$new_date_format = (new DateTime(‘2021-07-01T22:35:17.02’))->format(‘Y-m-d H:i:s’);
$new_date_format = DateTime::createFromFormat(‘F-d-Y h:i A’, ‘April-18-1973 9:48 AM’)->format(‘Y-m-d H:i:s’);
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.