2

文字列を検証して、07.05.2013 の形式であるかどうかを確認しようとしていますが、アプローチ方法がわかりません。

「。」かどうかを確認することを考えています 3番目と6番目の文字で、残りの文字が数字かどうかを確認しますが、それを達成する方法がわかりません。

4

6 に答える 6

4

単に日付を解析する必要がある場合は、php の日時機能を使用できます。

<?php
$date = DateTime::createFromFormat('d.m.Y', '07.05.2013');
echo $date->format('Y-m-d');
?>
于 2013-07-05T15:43:21.803 に答える
3

メソッドを使用しDateTime::CreateFromFormat()ます。これにより、入力が検証され、同時に日付オブジェクトが作成されます (これを使用して日付を操作できます)。

$dateObj = DateTime::CreateFromFormat('d.m.Y', $inputString);

日付が無効であるか、形式が間違っている場合は、 に$dateObjなりますfalse

必要な形式の有効な日付である場合は$dateObj、オブジェクトになりDateTimeます。

それが役立つことを願っています。

于 2013-07-05T15:44:32.443 に答える
2
if (preg_match('/^\d{2}\.\d{2}\.\d\{4}$/', $yourstring)) {
 ...
}

これは、文字列が dd.dd.dddd (d は数字) のような表現に一致する場合に当てはまります。

于 2013-07-05T15:43:00.417 に答える
2

checkdate関数を使用することもできます。

$date= '07.05.2013';
$date_arr= explode('.', $date);
if (checkdate($date_arr[0], $date_arr[1], $date_arr[2])) {
    // validate your date here
}
于 2013-07-05T15:44:10.253 に答える
1

何かのようなもの:

$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
}

月が日ではなく最初の場合。

于 2013-07-05T15:45:48.183 に答える