Как проверить формат даты строки в PHP? - PullRequest
9 голосов
/ 18 августа 2011

Я хотел бы проверить, имеет ли строка этот формат времени:

Y-m-d H:i:s

, а если нет, то сделать некоторый код, например

if here will be condition do { this }
else do { this }

Как выполнить это условие в PHP?

Ответы [ 7 ]

19 голосов
/ 18 августа 2011

preg_match - это то, что вы ищете, в частности:

if(preg_match('/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/',$date)){
   //dothis
}else{
   //dothat
}

, если вы действительно хотите только правильно отформатированную дату, тогда

/\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-5]\d:[0-5]\d/
16 голосов
/ 12 января 2016

Как проверить формат даты строки в PHP?

 if (DateTime::createFromFormat('Y-m-d G:i:s', $myString) !== FALSE) {
 echo 'true';
}                                                               
16 голосов
/ 18 августа 2011

Ты не.Невозможно определить, является ли это Y-m-d или Y-d-m, или даже Y-d-d против Y-m-m.Что такое 2012-05-12?12 мая или 5 декабря?

Но, если вы довольны этим, вы всегда можете сделать:на этом.Не проверял.

3 голосов
/ 18 августа 2011
if (preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/', $yourdate)) {
   // it's in the right format ...
} else {
  // not the right format ...
}

Обратите внимание, что это только проверяет, что строка даты выглядит как набор цифр, разделенных двоеточиями и тире.Он НЕ проверяет такие странности, как «2011-02-31» (31 февраля) или «99: 99: 99», в течение определенного времени (99 часов?).

1 голос
/ 18 августа 2011

С php.net

Вот классная функция для проверки даты и времени mysql:

<?php
function isValidDateTime($dateTime)
{
    if (preg_match("/^(\d{4})-(\d{2})-(\d{2}) ([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $dateTime, $matches)) {
        if (checkdate($matches[2], $matches[3], $matches[1])) {
            return true;
        }
    }

    return false;
}
?>
0 голосов
/ 18 августа 2011

Вы всегда можете просто заставить его:

date('Y-m-d H:i:s',strtotime($str));
0 голосов
/ 18 августа 2011

Ответ, вероятно, включает регулярные выражения . Я предлагаю прочитать эту документацию, а затем вернуться сюда, если у вас все еще есть проблемы.

...