这段代码工作正常,直到昨天:
$fechaactual = strtotime('now');
$timestamp = strtotime($v->startDate);
$pelo = date("d/m G:i:s",$fechaactual);
$pelo2 = date("m/d G:i:s",$timestamp);
$timestamp = strtotime($pelo2);
$timestamp2 = strtotime($pelo);
现在,$ timestamp2始终为空。我不明白。为什么呢?
答案 0 :(得分:1)
您尝试多次使用strtotime()
。
可以使用以下代码重现该问题:
$fechaactual = strtotime('now');
$pelo = date("d/m G:i:s",$fechaactual);
$timestamp2 = strtotime($pelo);
var_dump($timestamp2);
输出:
bool(false)
$fechaactual
将包含当前时间的时间戳,并且通过使用date()
,您将时间戳转换为可读格式。稍后,您尝试在新日期字符串上使用strtotime()
,但strtotime()
无法理解该格式并返回FALSE
。
strtotime()
了解此页面中列出的格式:http://php.net/manual/en/datetime.formats.date.php
如果要使用自定义格式解析日期字符串,最好使用DateTime::createFromFormat()
代替:
答案 1 :(得分:0)
关于这一点并非100%,但它直到昨天才有效,这可能意味着它的格式化问题。
今天是13/10/2013英国格式。 在美国,这相当于第13个月的第10天,这不是一个有效的日期...昨天将等同于第12个月的第10天,这将是一个有效的日期,虽然不是你期望的日期。