人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでの日付比較について。

今まで strtotime() で unixタイムスタンプにして比較してたのですが、
strtotime() はバグがあったりとあんまりよくないと聞きました。

mktime()だと面倒ですし、

他にどうやってやるのが効率や分かりやすさの面でいいのでしょうか?

また、strtotime()は実際使うべきではないですか?

●質問者: pirokyun
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP UNIX タイムスタンプ バグ 比較
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Mook
●30ポイント

検索してみると確かにバグの情報は見つかりますが、PHP5.1.0 で修正されているようです。

通常の日付比較程度の仕様で、これ以降のバージョンであれば現状のままでよいのではないでしょうか。


それ以前のバージョンであれば、面倒でもmktime を使用した方がよいと思います。


http://jp.php.net/strtotime

◎質問者からの返答

結局はmktimeですかね・・・。

ありがとうございます!


2 ● pahoo
●40ポイント

その日付比較は、システムの中で重要な役割を担う部分でしょうか。であれば、コードの効率性より、結果の確実性を求めるべきです。

strtotime は便利な関数ですが、バグが無かったとしても、投入する日時テキストのバリデーションチェックが必須です。それと、タイムゾーン環境変数TZの設定も必須です。


時刻まで必要ないのであれば、date_parse関数で年月日を分解し、checkdate関数に通して整合性チェックするのが無難でしょう。必要に応じて、あり得ない年号が入力されていないかどうかのチェックを加えてください。

逆に、ここまでやると、あとは mktime を利用できるわけですが‥‥。


環境変数TZの設定には、date_default_timezone_set関数が便利です。

◎質問者からの返答

やはり日付を扱うときには面倒でもmktimeを使ったほうがいいと言うことですね!

ありがとうございます!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ