Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 用另一个日期替换日期,但保持相同的时间_Php_Date_Datetime - Fatal编程技术网

Php 用另一个日期替换日期,但保持相同的时间

Php 用另一个日期替换日期,但保持相同的时间,php,date,datetime,Php,Date,Datetime,我有一个datetime变量,它包含日期和时间,我试图用另一个日期替换该日期(避免说第二天),但保持相同的时间 My datetime变量如调试器中所示: 我想将日期改为11-04,而不是11-03(第二天,增加一天),但将保持时间不变,因此最终数据时间将为2017-11-04 07:15:00。000000如果原始变量是PHP DateTime类的实例,则可以使用SetDate方法。它更改日期,但保留时间 如果原始变量是PHP DateTime类的实例,则可以使用SetDate方法。它更改

我有一个datetime变量,它包含日期和时间,我试图用另一个日期替换该日期(避免说第二天),但保持相同的时间

My datetime变量如调试器中所示:


我想将日期改为11-04,而不是11-03(第二天,增加一天),但将保持时间不变,因此最终数据时间将为2017-11-04 07:15:00。000000

如果原始变量是PHP DateTime类的实例,则可以使用SetDate方法。它更改日期,但保留时间


如果原始变量是PHP DateTime类的实例,则可以使用SetDate方法。它更改日期,但保留时间


有很多方法可以做到这一点

下面是一个使用DateTime对象的

<?php
$d = '2017-11-03 15:15:00.000000';

$dt = new DateTime($d);
echo 'Check original date ' . $dt->format('Y-m-d H:i:s.u') . PHP_EOL;;
// add 1 day
$dt->add(new DateInterval('P1D'));

echo 'New date ' . $dt->format('Y-m-d H:i:s.u');

有很多方法可以做到这一点

下面是一个使用DateTime对象的

<?php
$d = '2017-11-03 15:15:00.000000';

$dt = new DateTime($d);
echo 'Check original date ' . $dt->format('Y-m-d H:i:s.u') . PHP_EOL;;
// add 1 day
$dt->add(new DateInterval('P1D'));

echo 'New date ' . $dt->format('Y-m-d H:i:s.u');


原始日期时间变量的格式是什么。。。另外,
$newdate
变量的格式是什么?它是字符串、整数时间戳还是其他什么。请显示您的代码为这些变量赋值的位置。我在问题中添加了格式。您可以显示一个真实的示例吗?该格式看起来有点奇怪。请显示您的代码为这些变量赋值的位置格式是原始日期时间变量。。。另外,
$newdate
变量的格式是什么?它是字符串、整数时间戳还是其他什么。请显示您的代码,其中您为这些变量赋值。我在问题中添加了格式。您能否显示一个真实的示例,该格式看起来有点奇怪。请显示您的代码,其中您为这些变量赋值。谢谢,但我需要保留时间,但只需更改日期。好的,我将时间添加回
date()
formatting@RiggsFolly如果让我猜的话,OP有两个类似日期的字符串(第一个可能是ISO8601格式)。他们希望从第一个开始计算时间部分,并将其设置为开始日期second@Phil是的,听起来很有可能。我将看看OP对第二次尝试的看法。我已经用调试器中的数据更新了问题,现在清楚了吗?谢谢谢谢,但是我需要保留时间,但只需更改日期好的,我将时间添加回了
date()
formatting@RiggsFolly如果让我猜的话,OP有两个类似日期的字符串(第一个可能是ISO8601格式)。他们希望从第一个开始计算时间部分,并将其设置为开始日期second@Phil是的,听起来很有可能。我将看看OP对第二次尝试的看法。我已经用调试器中的数据更新了问题,现在清楚了吗?谢谢PHP文档中有很多例子,但重点是——我已经更新了答案。除了OP试图解释他想要使用的字符串中有一个日期之外。不只是发明输出的日期和时间。是的,问题已经更新,所以我的答案不再相关。看起来需要更改的不是日期,而是日期格式谢谢,有没有办法将其设置为第二天?@SMH是的,您可以使用
$date->modify(“+1天”)。但实际上,看看DateTime文档,有很多方便的方法。PHP文档中对“modify”的描述包括了许多示例,但重点是——我已经更新了答案。除了OP试图解释他想要使用的字符串中有一个日期之外。不只是发明输出的日期和时间。是的,问题已经更新,所以我的答案不再相关。看起来需要更改的不是日期,而是日期格式谢谢,有没有办法将其设置为第二天?@SMH是的,您可以使用
$date->modify(“+1天”)。但实际上,看看DateTime文档,有很多方便的方法。“修改”的说明位于
<?php
$d = '2017-11-03 15:15:00.000000';

$dt = new DateTime($d);
echo 'Check original date ' . $dt->format('Y-m-d H:i:s.u') . PHP_EOL;;
// add 1 day
$dt->add(new DateInterval('P1D'));

echo 'New date ' . $dt->format('Y-m-d H:i:s.u');
Check original date 2017-11-03 15:15:00.000000
New date 2017-11-04 15:15:00.000000