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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章