私はこれらの可能性のように表現された時間を持っています:
7:15:00 AM
07:15:00 AM
7:15:00 PM
07:15:00 PM
上記に合うように、以下の正規表現を調整するにはどうすればよいですか?追加する必要のあるルールは、前面のオプションの0と、オプションのスペースAMまたはスペースPMです。
/[0-2][0-9]:[0-5][0-9]:[0-5][0-9]/
(?
)演算子または {0,1}
/[0-2]?[0-9]:[0-5]?[0-9]:[0-5]?[0-9]\s?[AM|PM]/i
より良いアプローチ:strtotime()
[0-2]?[0-9]
有効な正規表現ではないと思うので、これはより良いものだと思います
/1[012]|0?[1-9]:[0-5]?[0-9]:[0-5]?[0-9]\s?[AM|PM]/i
代わりにPHPのstrtotime関数を使用してすべての作業を行ってみませんか?
この関数は、英語の日付形式を含む文字列が与えられることを想定しており、現在指定されているタイムスタンプを基準にして、その形式をUnixタイムスタンプ(1970年1月1日00:00:00 UTCからの秒数)に解析しようとします。現在の時刻が指定されていない場合。
多分
/[0-1]{0,1}[0-9]:[0-5][0-9]:[0-5][0-9] (AM|PM)/