我开始学习PHP,非常清楚,我在这里犯了一些错误,我尝试获取一天中特定小时和分钟的Unix时间戳:
<?php
date_default_timezone_set('America/Argentina/Buenos_Aires');
$data = new DateTime();
$datafmt = $data->format('Y-m-d');
echo strtotime($datafmt,'18:30:00');
?>
代码返回1554951600
并等于:
GMT: Thursday, April 11, 2019 3:00:00 AM
Your time zone: Thursday, April 11, 2019 12:00:00 AM GMT-03:00
这是错误的,时间戳记应该是:
1555018200
等于:
GMT: Thursday, April 11, 2019 9:30:00 PM
Your time zone: Thursday, April 11, 2019 6:30:00 PM GMT-03:00
我做错了什么?
已修复!
echo strtotime($datafmt. '18:30:00');
,
而不是.
,这是我的错误!
答案 0 :(得分:1)
您根本不需要strtotime()
。 DateTime
类是一种功能,功能更强大。只需将时间传递给构造函数或使用方法setTime()
<?php
date_default_timezone_set('America/Argentina/Buenos_Aires');
$data = new DateTime('18:30:00');
// Alternative ways to set the time of the DateTime object
// $data->setTime('18', '30', '00');
// $data->setTime(...explode(':', '18:30:00'));
$datafmt = $data->format('U'); // U means UNIX timestamp
echo $datafmt;
答案 1 :(得分:-1)
您可以这样尝试:
//your code
echo strtotime($datafmt. ' 18:30:00'); //change comma (,) with dot (.)
OR
date_default_timezone_set('America/Argentina/Buenos_Aires');
$data = new DateTime("18:30:00");
$datafmt = $data->format('U');
echo $datafmt;