带有strotime的Php unix时间戳

带有strotime的Php unix时间戳,php,unix,timestamp,strtotime,Php,Unix,Timestamp,Strtotime,我开始学习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'); ?> 这是错误的,时间戳应该是: 155501

我开始学习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');
 ?>
这是错误的,时间戳应该是:
1555018200
等于:

GMT: Thursday, April 11, 2019 3:00:00 AM
Your time zone: Thursday, April 11, 2019 12:00:00 AM GMT-03:00
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');   

而不是
这是我的错误

您根本不需要
strotime()
DateTime
class是一个替代品,功能更强大。只需将时间传递给构造函数或使用方法
setTime()


为什么要将
DateTime
strotime()
混用?你为什么要使用strotime()
呢?修复了。echo strotime($dataformat,'18:30:00');应该是echo strotime($datafmt'18:30:00');这是我的错误。现在代码返回1555018200:)John I正在学习php,可能我在路上做了很多不正确的事情:)我可以向我展示更好的方法来做这段代码所做的事情,为了学习我真的很感激。
<?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;