PHP将格式化日期转换为unixtime [重复]

Posted

技术标签:

【中文标题】PHP将格式化日期转换为unixtime [重复]【英文标题】:PHP Convert formatted date into unixtime [duplicate] 【发布时间】:2013-09-07 05:09:34 【问题描述】:

我的日期格式为 Y-M-D 小时-分钟-秒 2013-09-03 12:10:28,但我需要 unixtimestamp。

php 有许多转换日期和时间的函数,但显然没有一个函数可以接受日期及其格式并将其转换为 unixtime。我找到的最接近的函数是mktime(),但我需要将我当前的日期解析为它的每个组件。有没有更简单的方法?

【问题讨论】:

strtotime 可以完美处理这种格式。 echo strtotime('2013-09-03 12:10:28'); 忘记 strtotime()、date()、time() 和类似函数。开始使用 DateTime 类。示例:echo (new DateTime('2013-09-03 12:10:28'))->getTimestamp() 【参考方案1】:

strtotime('2013-09-03 12:10:28');

【讨论】:

【参考方案2】:
<?php
$date = DateTime::createFromFormat('Y-m-d H:i:s', '2013-09-03 12:10:28');
echo $date->getTimestamp();

恕我直言,最好不要使用 strtotime(),因为它会尝试猜测时间格式。我不喜欢编程中的任何“魔法”。

【讨论】:

这是最好的选择,因为格式是明确的而不是暗示的。 如果您的日期格式不是动态格式,那很好。 我同意其他类型的格式,但yyyy-mm-dd H:i:s 对“魔术”来说太标准了;)如果日期时间在supported date and time formats 中,那么您无需担心“魔术” “正在发生。【参考方案3】:
<?php
$str = '2013-09-03 12:10:28';
echo strtotime($str);

1378228228

【讨论】:

【参考方案4】:

你可以试试strtotime

echo strtotime('2013-09-03 12:10:28'); // 1378210228

【讨论】:

【参考方案5】:
<?php 
echo strtotime('1/1/2013');
?>

输出:1356994800 -> Unix时间戳

类似问题here

【讨论】:

以上是关于PHP将格式化日期转换为unixtime [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php怎么将指定日期转换为时间戳?

如何使用php将日期格式转换为日期时间格式[重复]

php将日期格式转换为mysql格式以进行插入[重复]

MySQL中日期和时间戳互相转换的函数和方法

将带有 GMT 的字符串转换为日期时间格式 - php [重复]

将Javascript日期字符串转换为PHP日期[重复]