Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将DateTime转换为另一个DateTime_Php_Date_Datetime - Fatal编程技术网

Php 将DateTime转换为另一个DateTime

Php 将DateTime转换为另一个DateTime,php,date,datetime,Php,Date,Datetime,有人能给我解释一下这里发生了什么事吗 <?php $date= \DateTime::createFromFormat("H:i:s", "17:30:23"); var_dump($date); $date = new DateTime('@' . $date->format('U')); var_dump($date); 我如何将时间从一个日期时间转移到另一个日期时间,使其完全相同? 我这样做是因为我有自己的Date类,它扩展了我需要使用的\DateTime,但我的源代码

有人能给我解释一下这里发生了什么事吗

<?php 
$date= \DateTime::createFromFormat("H:i:s", "17:30:23"); 
var_dump($date); 
$date = new DateTime('@' . $date->format('U'));
var_dump($date);
我如何将时间从一个日期时间转移到另一个日期时间,使其完全相同? 我这样做是因为我有自己的Date类,它扩展了我需要使用的
\DateTime
,但我的源代码是一个常规的
\DateTime
对象


在操作中:

您只需将DateTime对象更改为位于同一时区。在本例中,我使用了UTC,因为Unix时间戳始终使用UTC:

$date= \DateTime::createFromFormat("H:i:s", "17:30:23"); 
$date->setTimezone(new DateTimeZone('UTC'));
var_dump($date); 
$date = new DateTime('@' . $date->format('U'));
var_dump($date);

如果您想回到您的时区,请使用:

$date= \DateTime::createFromFormat("H:i:s", "17:30:23"); 
var_dump($date); 
$date = new DateTime('@' . $date->format('U'));
$date->setTimezone(new DateTimeZone('Europe/Amsterdam'));
var_dump($date);

“我这样问是因为我有自己的Date类,它扩展了\DateTime”-然后您应该显示它。此外,这样做可能会产生一些意想不到的/不利的影响。它不会起任何作用。只有一个
\uu toString()
方法。不管怎么说,这并不重要,上面的例子使用了标准的
\DateTime
类,但问题仍然存在。谢谢,这现在更有意义了!
$date= \DateTime::createFromFormat("H:i:s", "17:30:23"); 
var_dump($date); 
$date = new DateTime('@' . $date->format('U'));
$date->setTimezone(new DateTimeZone('Europe/Amsterdam'));
var_dump($date);