PHP 日期转换为时间戳


PHP Date Conversion to Timestamp

我正在尝试将以下字符串(或这次的字符串(转换为时间戳:

Closing date: 02 Apr 15
Closing date: 06 May 15

我的代码如下:

$start_date = explode("Closing date: ", $string);
                $start_date = DateTime::createFromFormat('DD M yy', $start_date[1]);

但是当我尝试回显$start_date->getTimestamp(( 时,它告诉我

Fatal error: Call to a member function getTimestamp() on a non-object

知道我可能做错了什么吗?DD M yy 似乎是要使用的正确日期格式。

它应该是:

$start_date = explode("Closing date: ", $string);
$start_date = DateTime::createFromFormat('d M y', $start_date[1]);

您需要传递给DateTime::createFromFormat()以帮助它解析数据的格式是 d M y 。我从文档中提取了这些字母的重要性:

  • dj:月份中的日期,2位数字,带或不带前导零(0131131(;
  • FM:一个月的文本表示,例如一月或九月(JanuaryDecemberJanDec(;
  • y:一年的两位数表示(假定在1970-2069范围内(;示例:9903(将分别解释为 19992003(。

您需要将"DD M yy"a更改为正确的日期格式"d M y">

$start_date = explode("Closing date: ", 'Closing date: 02 Apr 15');
$start_date = DateTime::createFromFormat('d M y', $start_date[1]);
     var_dump($start_date)
    object(DateTime)[3430]
      public 'date' => string '2015-04-02 15:27:28.000000' (length=26)
      public 'timezone_type' => int 3
      public 'timezone' => string 'Europe/London' (length=13)

DD M yy实际上不是正确的格式。摘自 DateTime::createFromFormat 文档:

D 和 l - 一天的文本表示 - 周一至周日或周日 到周六

在打电话之前尝试做一var_dump $start_date getTimestamp,我敢打赌实际上是false

返回

新的日期时间实例,失败时返回 FALSE。

您需要使用的格式是 d M y .

为什么不使用strtotime简单地将日期转换为timestamps格式

$string="Closing date: 02 Apr 15";
$start_date = explode("Closing date: ", $string);
print strtotime($start_date[1]);