Проверить, является ли переменная допустимой датой с помощью PHP

Я работаю над скриптом, который будет импортировать некоторые данные из CSV-файла. Поскольку я делаю это, я хочу иметь возможность проверить переменную, чтобы увидеть, является ли она допустимой строкой даты.

Я встречал несколько способов проверить, является ли строка датой, но большинство из них требует от вас форматирования. Я не буду знать формат, в котором будет дата.

прямо сейчас я использую функцию strtotime(), но это не так просто

$field ="May";
if(strtotime($field)){
    echo "This is a date";
}

В данном случае "май" было именем человека, а вовсе не датой.

Может ли кто-нибудь порекомендовать более надежную функцию?

Изменить на основе вопросов от некоторых из вас.

Чтобы переменная передавалась как «дата» в моем случае, она должна была бы быть определена для дня/месяца/года, поэтому просто «май» было бы расплывчато для подсчета.

Основываясь на этом и хорошем замечании Пола, приведенном ниже, мы также можем проверить, содержит ли строка число, например

$field ="May";
if(strtotime($field) && 1 === preg_match('~[0-9]~', $field)){
    echo "This is a date";
}else{
    echo "Nope not a date";
}

Это, похоже, удовлетворяет мои насущные потребности, но может ли кто-нибудь обнаружить какие-либо проблемы или предложить улучшения?

39
задан Alex 21 May 2012 в 20:35
поделиться