PHPでウェブの世界と繋がろう!
menu
ホーム > PHPサンプル > 正規表現系 > 時刻を判別したい

時刻を判別したい

Pocket

サンプルコード sample code
正規表現 時刻 の書式の判別 「preg_match()」
数値や論理値 = preg_match (パターン文字列, 入力文字列)

パターン文字列は、検索するパターンを表現する文字列です。入力文字列は検索する対象の文字列です。検索に一致すると数値の 1 を返し、一致しなかった場合 0 を返し、エラーが発生した場合は、 論理値 FALSE を返します。

時刻の書式が正しいかどうか判別する正規表現

書式:00:00:00~23:59:59 の書式を判別しています。

//書式:00:00:00~23:59:59
if(preg_match('/^(0[0-9]{1}|1{1}[0-9]{1}|2{1}[0-3]{1}):(0[0-9]{1}|[1-5]{1}[0-9]{1}):(0[0-9]{1}|[1-5]{1}[0-9]{1})$/', $time))
    {echo '<font color="blue">'.$time.' 正しい時刻</font><br/>';}
else
    {echo '<font color="red">'.$time.' 不正な時刻</font><br/>';}

書式:01:00:00~12:59:59の書式を判別しています。

//書式:01:00:00~12:59:59
if(preg_match('/^(0[1-9]{1}|1{1}[0-2]{1}):(0[0-9]{1}|[1-5]{1}[0-9]{1}):(0[0-9]{1}|[1-5]{1}[0-9]{1})$/', $time))
    {echo '<font color="blue">'.$time.' 正しい時刻</font><br/>';}
else
    {echo '<font color="red">'.$time.' 不正な時刻</font><br/>';}

サンプルコード

– サンプル Click Here ! –

<h3>正規表現 時刻の書式の判別 書式 00:00:00~23:59:59</h3>
<?php
function hhiiss0023($time){
/*
時 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
分 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ・・・・ 55 56 57 58 59
秒 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ・・・・ 55 56 57 58 59
*/

    if(preg_match('/^(0&#91;0-9&#93;{1}|1{1}&#91;0-9&#93;{1}|2{1}&#91;0-3&#93;{1}):(0&#91;0-9&#93;{1}|&#91;1-5&#93;{1}&#91;0-9&#93;{1}):(0&#91;0-9&#93;{1}|&#91;1-5&#93;{1}&#91;0-9&#93;{1})$/', $time))
        {echo '<font color="blue">'.$time.' 正しい時刻</font><br/>';}
    else
        {echo '<font color="red">'.$time.' 不正な時刻</font><br/>';}
}

echo '<h4>時が不正</h4>';
hhiiss0023(':59:59');
hhiiss0023('0:59:59');
hhiiss0023('24:59:59');
hhiiss0023('30:59:59');
hhiiss0023('000:59:59');
hhiiss0023('1a:59:59');

echo '<h4>分が不正</h4>';
hhiiss0023('23::59');
hhiiss0023('23:0:59');
hhiiss0023('23:60:59');
hhiiss0023('23:000:59');
hhiiss0023('23:1a:59');

echo '<h4>秒が不正</h4>';
hhiiss0023('00:00:');
hhiiss0023('00:00:0');
hhiiss0023('00:00:60');
hhiiss0023('00:00:000');
hhiiss0023('00:00:1a');

echo '<h4>30時間チェック</h4>';
for($i = 0; $i <= 30; $i++){
    $time = date('H:i:s',mktime(0+$i,0,0,date('n'),date('j'),date('Y')));
    hhiiss0023($time);
}
echo '<h4>100分チェック</h4>';
for($i = 0; $i <= 100; $i++){
    $time = date('H:i:s',mktime(0,0+$i,0,date('n'),date('j'),date('Y')));
    hhiiss0023($time);
}
echo '<h4>100秒チェック</h4>';
for($i = 0; $i <= 100; $i++){
    $time = date('H:i:s',mktime(0,0,0+$i,date('n'),date('j'),date('Y')));
    hhiiss0023($time);
}
?>

<h3>正規表現 時刻の書式の判別 書式 01:00:00~12:59:59</h3>
<?php
function hhiiss0112($time){
/*
時 01 02 03 04 05 06 07 08 09 10 11 12
分 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ・・・・ 55 56 57 58 59
秒 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ・・・・ 55 56 57 58 59
*/

    if(preg_match('/^(0&#91;1-9&#93;{1}|1{1}&#91;0-2&#93;{1}):(0&#91;0-9&#93;{1}|&#91;1-5&#93;{1}&#91;0-9&#93;{1}):(0&#91;0-9&#93;{1}|&#91;1-5&#93;{1}&#91;0-9&#93;{1})$/', $time))
        {echo '<font color="blue">'.$time.' 正しい時刻</font><br/>';}
    else
        {echo '<font color="red">'.$time.' 不正な時刻</font><br/>';}
}

echo '<h4>時が不正</h4>';
hhiiss0112(':59:59');
hhiiss0112('0:59:59');
hhiiss0112('13:59:59');
hhiiss0112('30:59:59');
hhiiss0112('000:59:59');
hhiiss0112('1a:59:59');

echo '<h4>分が不正</h4>';
hhiiss0112('23::59');
hhiiss0112('23:0:59');
hhiiss0112('23:60:59');
hhiiss0112('23:000:59');
hhiiss0112('23:1a:59');

echo '<h4>秒が不正</h4>';
hhiiss0112('00:00:');
hhiiss0112('00:00:0');
hhiiss0112('00:00:60');
hhiiss0112('00:00:000');
hhiiss0112('00:00:1a');

echo '<h4>30時間チェック</h4>';
for($i = 0; $i <= 30; $i++){
    $time = date('h:i:s',mktime(0+$i,0,0,date('n'),date('j'),date('Y')));
    hhiiss0112($time);
}
echo '<h4>100分チェック</h4>';
for($i = 0; $i <= 100; $i++){
    $time = date('h:i:s',mktime(0,0+$i,0,date('n'),date('j'),date('Y')));
    hhiiss0112($time);
}
echo '<h4>100秒チェック</h4>';
for($i = 0; $i <= 100; $i++){
    $time = date('h:i:s',mktime(0,0,0+$i,date('n'),date('j'),date('Y')));
    hhiiss0112($time);
}
?>
実行結果
正規表現 時刻の書式の判別 書式 00:00:00~23:59:59

時が不正
:59:59 不正な時刻
0:59:59 不正な時刻
24:59:59 不正な時刻
30:59:59 不正な時刻
000:59:59 不正な時刻
1a:59:59 不正な時刻

分が不正
23::59 不正な時刻
23:0:59 不正な時刻
23:60:59 不正な時刻
23:000:59 不正な時刻
23:1a:59 不正な時刻

秒が不正
00:00: 不正な時刻
00:00:0 不正な時刻
00:00:60 不正な時刻
00:00:000 不正な時刻
00:00:1a 不正な時刻

30時間チェック
00:00:00 正しい時刻
01:00:00 正しい時刻
・・・・
・・

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2012年3月14日
最終更新日:2014年02月20日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpsample-preg-time/trackback/