22

我有这个字符串:“13/10 15:00”,我想将它转换为时间戳,但是当我这样做时:

      $timestamp = strtotime("13/10 15:00");

它返回一个空值。

4

2 回答 2

50

在您的代码strtotime()中尝试转换13/10为第 13 个月的第十天,这会返回错误。

如果要解析具有自定义格式的日期字符串,最好使用 DateTime::createFromFormat() 代替:

$dtime = DateTime::createFromFormat("d/m G:i", "13/10 15:00");
$timestamp = $dtime->getTimestamp();
于 2013-10-13T15:33:11.623 回答
25
  $timestamp = strtotime("13-10-2013 15:00");

这可能很重要:

m/d/y 或 dmy 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 dmy 格式。

为避免潜在的歧义,最好尽可能使用 ISO 8601 (YYYY-MM-DD) 日期或 DateTime::createFromFormat()。

http://uk3.php.net/strtotime

于 2013-10-13T15:28:38.663 回答