PHP破坏了我的日期

时间:2008-10-29 13:55:59

标签: php date

$doba = explode("/", $dob);

$date = date("Y-m-d", mktime(0,0,0, $doba[0], $doba[1], $doba[2]));

以上代码将我通过的任何日期变为1999-11-30,我知道它昨天正在运作。当我回显$ doba时,日期是正确的。有人有什么想法吗?

干杯

4 个答案:

答案 0 :(得分:3)

$doba的格式是什么?请记住mktime的语法分为小时,分钟,秒,月,日年,这可能令人困惑。

以下是一些例子:

$doba = explode('/', '1991/08/03');
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[2], $doba[0]);

$doba = explode('/', '03/08/1991');
echo(date('Y-m-d', mktime(0,0,0, $doba[1], $doba[0], $doba[2]);

答案 1 :(得分:3)

甚至更容易:$date = date('Y-m-d', strtotime($dob))

答案 2 :(得分:2)

在这种情况下使用mktime有点过分。假设$dob采用以下格式:

  

MM/DD/YYYY

您可以通过以下方式获得相同的结果(假设$dob始终有效):

$doba = explode("/", $dob);
$date = vsprintf('%3$04d-%1$02d-%2$02d', $doba);

答案 3 :(得分:0)

如果您对jcoby上面说的内容有疑问,strptime()命令可以让您通过指定格式来获得更多控制权。