以下是数据库的输出,我试图从数据库中获取开始日期和日期之间的月数。以下是我的输出
string(10) "12/12/2010" Date : 12/12/2010 - 1292112000
string(10) "19/04/2000" Date : 19/04/2000 -
string(10) "08/08/2007" Date : 08/08/2007 - 1186527600
string(10) "20/06/2011" Date : 20/06/2011 -
如您所见,第二个和第四个unix时间戳为空。我不知道是什么原因引起了这个问题。下面是我用来回应你上面看到的代码。
echo "Date : " . $row['startDate'] . " - " . strtotime($row['startDate']) . var_dump($row['startDate']). "<br />";
答案 0 :(得分:8)
来自the manual:
通过查看,可以消除m / d / y或d-m-y格式的日期 各个组件之间的分隔符:如果分隔符是a 斜线(/),然后是美国m / d / y;而如果 separator是短划线( - )或点(。),然后是欧洲d-m-y格式 假定。
为避免潜在的歧义,最好使用ISO 8601(YYYY-MM-DD) date或DateTime :: createFromFormat()尽可能。
答案 1 :(得分:1)
解决了这个问题,我在5.3 PHP中使用了一些新的DateTime函数
$originalDate = str_replace("/", "-", $row['startDate']);
$date1 = new DateTime($originalDate);
$date2 = new DateTime('now');
$interval = date_diff($date1, $date2);
echo "Months" . $interval->format('%m') . ($interval->format('%y') * 12) . "<br />";