ためのおかげで、両方のために次のことを試してみてください。
$date="2017-09-11";
if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$date)) {
echo true;
} else {
echo false;
}
$date="2017.10.22";
if (preg_match("/^[0-9]{4}.(0[1-9]|1[0-2]).(0[1-9]|[1-2][0-9]|3[0-1])$/",$date)) {
echo true;
} else {
echo false;
}
形式が有効であるかどうかをチェックするために正規表現を使用しています。
OR
$date="2017-09-11";
$dt = DateTime::createFromFormat("Y-m-d", $date);
echo $dt !== false && !array_sum($dt->getLastErrors());
$date="2017.10.22";
$dt = DateTime::createFromFormat("Y.m.d", $date);
echo $dt !== false && !array_sum($dt->getLastErrors());
それは両方のフォーマットに対して日付を確認するためにDateTime
を使用しています。
編集:両方がまともなソリューションですが、benchmarksは、この場合には、preg_match
がDateTime
よりもかなり高速であることを示しています。 https://3v4l.org/H8C73
からコピーされたのですか? – Manav
最初に解いたのと同じです – ArtOsi