1.2.日付の正確な解析とファジィ解析(RubyクックブックをPHPに翻訳する)

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] =>
)
?>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください