2011-07-11 70 views
2

我有一个包含date()函数的php脚本。但不知怎的,它将这一天的名字弄乱了。php日期函数返回错误日期

线是一样简单

date ("l",mktime(0,0,0,$test3,$test2,$test4)); 

当我与当前日期测试它例如

date ("l",mktime(0,0,0,11,07,2011)); 

它返回星期一的正确日期。但是,如果我去短短一天进一步

date ("l",mktime(0,0,0,12,07,2011)); 

返回周三..

你有任何想法,问题可能是什么?任何与时区或任何东西..?我从来没有使用日期功能,并找不到任何解决方案googeling它或在这里..

我欣赏任何答案! thx提前!

+0

您应该从“07”中删除前导0。 mktime期望整数,但会将前导零解释为一个字符串,并可能产生意想不到的结果。 – Jrod

+0

Thx everyone!简单的解决方案.. ^^我在执行时必须阅读错误的文档..或者,也许我只是读错了;;)谢谢大家的快速答案! – Sebsemillia

回答

2

mktime()的第四个参数是月份。 2011年11月7日是星期一,但2011年12月7日是星期三。

int mktime (
    [ int $hour = date("H") 
    [, int $minute = date("i") 
    [, int $second = date("s") 
    [, int $month = date("n") 
    [, int $day = date("j") 
    [, int $year = date("Y") 
    [, int $is_dst = -1 ] 
    ]]]]]]) 

此外,你应该删除前导零(07 => 7)以避免意外错误。

来源:http://www.php.net/mktime

1

你正在改变的月份没有一天

int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]]) 
1

奇怪,因为它看起来,PHP的文件说,第四个参数实际上是在本月(11或12的例如),而第五(07)是一天。尝试切换这些并再次尝试。