如何将日期时间本地输入转换为 unix 时间戳?

时间:2020-12-26 03:54:23

标签: php datetime datetime-format unix-timestamp

我正在处理类型为 datetime-local 的输入。我需要将其转换为 unix 时间戳。

以下是提交的原始值格式为 2018-06-12T19:30 的示例。

我需要将上述格式的日期转换为当前的 unix 时间戳格式 1608954764

3 个答案:

答案 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();