преобразовать число в дату 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’);

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *