PHP — Дата, возвращающая неправильное значение

#php #mysql

#php #mysql

Вопрос:

У меня есть немного кода, и, похоже, он работает некорректно.

Я пытаюсь поместить это в правильный формат для моей базы данных. Я делаю следующее:

 date('Y-m-d H:i:s', strtotime('24/05/2011'));
  

Но каждый раз, когда я повторяю это, оно возвращает:

 1970-01-01 10:00:00
  

Ответ №1:

Неоднозначность дат в форматах m / d / y или d-m-y устраняется путем рассмотрения разделителя между различными компонентами: если разделителем является косая черта (/), то предполагается американский m / d / y; тогда как если разделителем является тире (-) или точка (.), то предполагается европейский формат d-m-y.

Из документации strtotime

Это должно сработать

 date('Y-m-d H:i:s', strtotime('05/24/2011'));
  

Комментарии:

1. Интересно, я никогда раньше не тратил время на то, чтобы выяснить, как это работает. Это из PHP. документация net?

2. Если вы изучите ссылку, вы действительно обнаружите, что это официальная документация.

Ответ №2:

Просто предположение, но попробуйте это:

 date('Y-m-d H:i:s', strtotime('24/05/2011 00:00:00'));
  

После тестирования это показывает, что это работает:

 echo date('Y-m-d H:i:s', strtotime("24-5-2011"));
  

Ответ №3:

Это означает, что вашей strtotime функции не удается проанализировать эту дату. При сбое он возвращает, false который date читается как 0, что соответствует эпохе UNIX. Как предположил программист XR, возможно, вам потребуется немного изменить свой формат — если то, что он сказал, не работает, попробуйте преобразовать datetime в этот формат:

 date('Y-m-d H:i:s', strtotime('2011-05-24 00:00:00'));
  

Ответ №4:

Во-первых, это не date(), а strtotime(). Далее, strtotime() — это не волшебная палочка, которая читает ваши мысли и понимает любой формат.
Это просто функция, принимающая определенные аргументы. Итак, если он возвращает неверное значение — проверьте входные параметры и прочитайте руководство, чтобы убедиться, что они верны.

В-третьих, вам в любом случае не нужна такая сложная функция. Все, что вам нужно, это несколько операций со строками:

 list($d,$m,$y) = explode("/",$date);
$date = "$y-$m-$d";
  

Понимание операций со строками — это самое важное в использовании PHP.