DateTime
имеет предопределенную константу формата DaTeTime::RFC3339
.Так как createFromFormat
возвращает false
, если не может проанализировать дату в соответствии с предоставленным форматом, вы можете использовать эту проверку в качестве валидатора:
validRFC3339Date("2018-01-29T20:36:01Z");
validRFC3339Date("2018-01-29T20:36:01+00:00");
validRFC3339Date("2018-01-22 20:36");
validRFC3339Date("2018-09-28T16:00:05.000Z");
function validRFC3339Date($date) {
if (DateTime::createFromFormat(DateTime::RFC3339, $date) === FALSE) {
echo "$date: Invalid RFC3339\n";
} else {
echo "$date: Valid RFC3339\n";
}
}