MyMiniCity踏んでください!!

ただいま絶賛MyMiniCity参加中です.是非リンクを踏んでください!!(笑
July 4th, 2006

間違った日付の取得方法

(Read: 18761)
Add to Hatena Bookmark

参照: 昨日の日付を得る - phpspot
まれにみかけますが,date()などを複数回用いた日付の構築の多くは間違ったやり方です.
ryuzi_kambe の?D - 昨日の日付を得る - phpspot経由で見かけたのですが,
昨日の日付を得る - phpspotは間違った実装をしています.


function getDay($day){
return mktime(date("H"),date("i"),date("s"),date("m"),date("d")+$day,date("Y"));
}

これは複数回date()が実行される間に日付が変わったときに意図しない日付が作成できてしまいます.
せめてこういう場合


function getDay($day){
$now = time();
return mktime(date("H",$now),date("i",$now),date("s",$now),date("m",$now),date("d",$now)+$day,date("Y",$now));
}
のようにやります.
しいていうと,


$ php -r 'var_dump( date("YmdHis",strtotime("-1 day")));'
string(14) "20060703111741"
$ php -r 'var_dump( date("YmdHis",strtotime("+1 day")));'
string(14) "20060705111748"
でできます.strtotime()が認識できる引数はPHPのバージョン毎に揺れがあることには注意しないといけませんが.


▼ この記事へのコメント ▼
とは言え、strtotime()でも、昨日と明日を求めるのに
strtotime(\"-1 day\")
strtotime(\"+1 day\")
って複数回使うと同じことになってしまいますので注意が必要です

「今」に対して昨日と今日を求めるなら
$now = time();
strtotime(\"-1 day\", $now)
strtotime(\"+1 day\", $now)
ってして、「今」を確定させないとダメよってことですな

あーこのエントリも2つ続けたものとして取られる場合があるか.
そこまで気が回ってませんでした.すみません.

ようするに「今」という瞬間は1つのトランザクションで固定する必要があるということですね.


addslashesされてるところハケソ(何

っで,
http://b.hatena.ne.jp/bookmarklist?url=http%3A%2F%2Fblog.poyo.jp%2F#bookmark-kno-2264960
> 「time()+$day*(1日分の秒数)」とかじゃいけないのかしら?

夏時間を意識しないでいいならそういうのもアリでしょうね.
個人的にはその他の理由も含めてNGなコードですけど

トピックの参照元

▼最近のトピック

▼ 人気のトピック


< 過去の記事 [ 7All Categories ] 新しい記事 >
Powered by gsblog (customize)

[ POST ] [ AddLink ] [ CtlPanel ]

Subscribe blog

Bookmark blog

About me

about me

応援しています

我が息子が産まれたアクア・バースハウス(東京都世田谷区にある助産院)を応援しています.

翻訳のお仕事

腕に自信がある方,修行をしたい方はこちらをどうぞ.

2006 calendar

7月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
| Day | Month | Year |

Powered by RRDTOOL.

Archives

Categories

Links


Mail to admin

人気ブログランキングへ RSS feed meter for http://blog.poyo.jp/ Search Engine Optimization
blogpeople.netに登録!! スカウター : よくきたblog

My Google news

My Google News

Related site

ころんころん♪ べびぽよ フォト蔵Wiki
string(40) "/categ-1/year-2006/month-7/id-1151979701"