-1

直到昨天,这段代码都运行良好:

$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 始终为空。我不明白。为什么?

4

2 回答 2

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()改用:

于 2013-10-13T14:38:56.280 回答
0

不是 100% 关于这一点,但它工作到昨天的事实可能意味着它的格式问题。

今天是英国格式的 13/10/2013。在美国,这将等同于第 13 个月的第 10 天,这不是一个有效日期......昨天将等同于第 12 个月的第 10 天,这将是一个有效日期,尽管不是您期望的日期。

于 2013-10-13T14:42:27.137 回答