PHP损坏了我的日期

问题描述:

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

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

上面的代码将我通过的任何日期转换为1999-11-30,我知道它在昨天工作。当我回复$ doba时,日期是正确的。有人有主意吗?PHP损坏了我的日期

干杯

+0

您需要向我们展示您传递给我们的值,作为$ dob让我们给出明确的答案。 – davr 2008-10-29 14:58:44

$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]); 

这是一个有点矫枉过正在这种情况下使用mktime。假设$dob是按以下格式:

MM/DD/YYYY

你可以只以下,以acheive相同的结果(假设$dob始终是有效的):

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

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

如果你对上面说的jcoby有什么问题,t他strptime()命令通过允许您指定格式来为您提供更多控制。