Проверка даты в PHP аналогична проверке ASP isDate () для пользовательских дат, времени или пар дата / время - PullRequest
4 голосов
/ 27 декабря 2011

Я преобразовываю приложение ASP в PHP и испытываю трудности с расшифровкой функциональности проверки даты.

В ASP у меня есть функция isDate (), которая позволяет мне проверять дату независимо от ее формата. Поэтому, если кто-то вводит любое из следующего, isDate () возвращает true:

1/1/2012
January 1, 2012
Jan 12, 2010 1:00 pm
1/1/2012 1:32 pm

Преимущество заключается в том, что я могу позволить пользователю вводить данные и время в любом формате, который они выберут. После этого, с минимальными усилиями, я могу обновить базу данных без какой-либо последующей обработки (при условии, что возвращается true). Например:

UPDATE my_table SET date_field = @date_var WHERE my_id = @id_var
[note: SQL Server 2008]

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

Мне интересно, есть ли в наличии классы для выполнения основной работы. Что-то, что будет работать как isDate () и отправит мне обратно true / false, основываясь на введенной пользователем дате / времени / дате и времени.

Спасибо.

Ответы [ 2 ]

13 голосов
/ 27 декабря 2011

Вы можете проверить возвращаемое значение strtotime(), чтобы увидеть, можно ли проанализировать дату:

if(strtotime($date) !== false) {
   // valid date/time
}

Это также, как нормализовать все даты, сохраняя их как возвращаемое значение strtotime().

1 голос
/ 27 декабря 2011

Возможно, вы могли бы использовать strtotime ()?

...