我正在处理类型为 datetime-local
的输入。我需要将其转换为 unix 时间戳。
以下是提交的原始值格式为 2018-06-12T19:30
的示例。
我需要将上述格式的日期转换为当前的 unix 时间戳格式 1608954764
。
答案 0 :(得分:2)
strtotime() 将返回给定时间的 Unix 纪元。
<?php
strtotime("2018-06-12T19:30");
?>
答案 1 :(得分:0)
您可以使用 date_create_from_format。
date_create_from_format 的优势在于避免系统检测到错误的月份和日期(例如 2011-3-10 可能意味着不同国家的 3 月 10 日或 10 月 3 日,但 date_create_from_format 是安全的,它会根据您设置的规则进行转换)
如下:
<?php
$date = date_create_from_format('Y-m-j H:i', str_replace('T',' ', '2018-06-12T19:30'));
echo $date->getTimestamp();
?>
答案 2 :(得分:0)
strtotime()
是最简单的选择,但您确实应该考虑尽可能使用 DateTime
类。
要使用 DateTime
获取 UNIX 时间戳,只需使用 format('U')
。
// returns UNIX timestamp as string
$ts = (new DateTime("2018-06-12T19:30"))->format('U');
还有一个名为 getTimestamp()
的快捷方式。
// returns UNIX timestamp as int
$ts = (new DateTime("2018-06-12T19:30"))->getTimestamp();