RubyクックブックをPHPに翻訳してみる。
レシピ1.2.日付の正確な解析とファジィ解析
checkdate()は、グレグリオ歴の日付/時刻の妥当性を確認します。
<?php
var_dump(checkdate(12, 31, 2000));
var_dump(checkdate(2, 29, 2001));
?>
bool(true)
bool(false)
strtotime()は、英文形式の日付を Unix タイムスタンプに変換します。
<?php
echo date('Y/n/j G:i:s', strtotime("now")), "\n";
// => 2007/8/16 13:16:01
echo date('Y/n/j G:i:s', strtotime("10 September 2000")), "\n";
// => 2000/9/10 0:00:00
echo date('Y/n/j G:i:s', strtotime("+1 day")), "\n";
// => 2007/8/17 13:16:01
echo date('Y/n/j G:i:s', strtotime("+1 week")), "\n";
// => 2007/8/23 13:16:01
echo date('Y/n/j G:i:s', strtotime("+1 week 2 days 4 hours 2 seconds")), "\n";
// => 2007/8/25 17:16:03
echo date('Y/n/j G:i:s', strtotime("next Thursday")), "\n";
// => 2007/8/23 0:00:00
echo date('Y/n/j G:i:s', strtotime("last Monday")), "\n";
// => 2007/8/13 0:00:00
?>
strptime()は、strftime()が生成した日付/時刻をパースします。
※注意: この関数は Windows 環境にはまだ実装されていません。
<?php
print_r(strptime('2007/8/18 13:25:37', '%Y/%m/%d %H:%M:%S'));
?php
Array
(
[tm_sec] => 37
[tm_min] => 25
[tm_hour] => 13
[tm_mday] => 18
[tm_mon] => 7
[tm_year] => 107
[tm_wday] => 6
[tm_yday] => 229
[unparsed] =>
)
?>