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

How Do I convert datetime-local input to unix timestamp?

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

这是提交的原始值的格式示例 2018-06-12T19:30

我需要将上述格式的日期转换成这种格式 1608954764,当前的 unix 时间戳。

您可以使用 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();
?>

strtotime() 将 return 给定时间的 Unix 纪元。

<?php
strtotime("2018-06-12T19:30");
?>

strtotime() 是最简单的选择,但您真的应该尽可能考虑使用 DateTime class。

要使用 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();