[php]PHPは5.1.0以降なら1902年?2037年の誕生日がOK

カテゴリ: php / author: uechoco / 2008年03月04日 00:00:00
この記事を読む時間:32くらい

PHP5.1.0からはunix timeの計算を自前で実装しています。unix timeを負の方向に自然に拡張することで、pre-epoch
unix timeが扱えるようになりました。32bit環境であれば-2^31から2^31-1まで、1901-12-13 20:45:52
GMT?2038-01-19 03:14:07 GMTまでのunix timeを扱えるようになっています。

 前に読んだけど、自分の中で忘れていたので、メモ。

 php5.1.0以降なら、他のライブラリを使わなくてもWebサービスの対象年齢層の誕生日を扱えるんだねっていうことなんだけれども、やっぱり今時はvalid 2038なプログラムを書くほうがより良いから、たいして有用なトピックでもなかったかな。

?


<?php

// php 5.2.5

tryStrToTime('1969-12-31 23:59:59');

tryStrToTime('1969-12-31 23:59:59 GMT');

tryStrToTime('1901-12-13 20:45:52');

tryStrToTime('1901-12-13 20:45:52 GMT');

tryStrToTime('1901-12-14 05:45:52');

tryStrToTime('2038-01-19 03:14:07');

tryStrToTime('2038-01-19 03:14:07 GMT');function tryStrToTime($strtime) {

????if (($unixtime = strtotime($strtime)) == false) {

????????echo “[{$strtime}] is unknown.
;

????} else {

????????echo “[{$strtime}] > {$unixtime}.
;

????}

}

?>
[1969-12-31 23:59:59] > -32401. [1969-12-31 23:59:59 GMT] > -1. [1901-12-13 20:45:52] is unknown. [1901-12-13 20:45:52 GMT] > -2147483648. [1901-12-14 05:45:52] > -2147483648. [2038-01-19 03:14:07] > 2147451247. [2038-01-19 03:14:07 GMT] > 2147483647.


コメントはまだありません »

コメントはまだありません。

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.