<<  2007.1 >>
SMTWTFS
 123456
78910111213
14151617181920
21222324252627
28293031   
 
リンク
その他
  • RSS2.0
  • Credit

  • SEO
    loading



カテゴリー » ソフトウェア » ppblog January 31, 2007

このサイトの上部に Warning: date() expects parameter 2 to be long,  

隠すのはよくない!、ってことでPHPエラーを表示するようにしたら、不定期に
「 Warning: date() expects parameter 2 to be long, string given in utils.php on line 594 」
と表示されて嫌な感じ。なぜなにナゼデルってことで、このサイトを構成している ppBlog-1.4.3 の utils.php の594行目、すなわち警告の箇所を見ると
$isSameDatePrev = (date('Ymd', $id)==date('Ymd',$nxt_id)) ? true : false;
むうぅ、これをどうすればいいのか見当も付かない。検索サイトで調べると、
http://forums.eqdkp.com/index.php?showtopic=7394
に解決法らしき情報を発見。しかし、私の知識ではどうすればいいのか分からん。仕方ないので初心者向けのphpプログラミングサイトを見たりしてお勉強。そして
$isSameDateNext = (date('Ymd', strtotime($id))==date('Ymd',strtotime($nxt_id))) ? true : false;
としてみた。なんか上手くいったような気がする。駄目だった。エラーでまくり

どうやら php5 で動くと上記の警告が出るみたい。今現在このサーバは php のバージョンが 4.4.4 だけでなく、実験的に 5.2.0 も動いていて、どちらで処理されるかはランダムだったりする。

≪追記・解決しました≫
下のコメント欄参照。ありがとうです。
09:33PM | Comment(6) | TrackBack(0) 

上の記事に対するコメントです

1. makihara  September 26, 2007 @ 03:32pm
php5の場合date関数でパラメータ(上記の場合$nxt_idか$id)が存在しない、もしくは数値で無い場合エラーになるみたいです。
自分のサイトでは
if(!$id){$id=0;)
if(!$nxt_id){$nxt_id=0;)
の様にしたところエラーは出なくなりました。

2. makihara  September 26, 2007 @ 04:02pm
if(!$id){$id=0;)
if(!$nxt_id){$nxt_id=0;)

if(!$id){$id=0;}
if(!$nxt_id){$nxt_id=0;}
の間違いでした。

3. Owner CommentSawa  September 26, 2007 @ 07:07pm
ありがとうございます。
error_reporting(E_ALL ^ E_NOTICE);
の状態でも Warning が出なくなりました。
0を代入しておいても普通に動くようですし、嬉しいです。

4. yamazon (Website)  April 12, 2010 @ 08:27pm
はじめまして。
expects parameter というエラーが出て調べていました。
参考になりました!ありがとうござました!

5. Owner CommentSawa  April 12, 2010 @ 10:29pm
こんにちは。
この記事は全くPHPを知らない時に書いた物で、今見ると恥ずかしいです。

結局のところ、dateの中身が空だったりすると文句を言われるので

(!empty($i) && date('Ymd', $i)
とか
if(!is_numeric($i)) return;
でお茶を濁せばいいようです

6. toru  August 9, 2010 @ 11:08am
すいませんが自分も見事に引っかかりまして・・
$isSameDatePrev = (date('Ymd', $id)==date('Ymd',$nxt_id)) ? true : false;
これをどう書き換えればよろしいでしょうか?
よろしくお願いします。