Я работаю над скриптом, который будет импортировать некоторые данные из 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";
}
Это, похоже, удовлетворяет мои насущные потребности, но может ли кто-нибудь обнаружить какие-либо проблемы или предложить улучшения?