文字列を検証して、07.05.2013 の形式であるかどうかを確認しようとしていますが、アプローチ方法がわかりません。
「。」かどうかを確認することを考えています 3番目と6番目の文字で、残りの文字が数字かどうかを確認しますが、それを達成する方法がわかりません。
文字列を検証して、07.05.2013 の形式であるかどうかを確認しようとしていますが、アプローチ方法がわかりません。
「。」かどうかを確認することを考えています 3番目と6番目の文字で、残りの文字が数字かどうかを確認しますが、それを達成する方法がわかりません。
単に日付を解析する必要がある場合は、php の日時機能を使用できます。
<?php
$date = DateTime::createFromFormat('d.m.Y', '07.05.2013');
echo $date->format('Y-m-d');
?>
メソッドを使用しDateTime::CreateFromFormat()
ます。これにより、入力が検証され、同時に日付オブジェクトが作成されます (これを使用して日付を操作できます)。
$dateObj = DateTime::CreateFromFormat('d.m.Y', $inputString);
日付が無効であるか、形式が間違っている場合は、 に$dateObj
なりますfalse
。
必要な形式の有効な日付である場合は$dateObj
、オブジェクトになりDateTime
ます。
それが役立つことを願っています。
if (preg_match('/^\d{2}\.\d{2}\.\d\{4}$/', $yourstring)) {
...
}
これは、文字列が dd.dd.dddd (d は数字) のような表現に一致する場合に当てはまります。
checkdate関数を使用することもできます。
$date= '07.05.2013';
$date_arr= explode('.', $date);
if (checkdate($date_arr[0], $date_arr[1], $date_arr[2])) {
// validate your date here
}
何かのようなもの:
$date = DateTime::createFromFormat('d.m.Y', $yourStringWhichMightBeADate);
if ($date)
{
// it's a date, so use it
}
または:
$date = DateTime::createFromFormat('m.d.Y', $yourStringWhichMightBeADate);
if ($date)
{
// it's a date, so use it
}
月が日ではなく最初の場合。