如何将日期时间本地输入转换为 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();
我正在使用类型为 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();