Php 用另一个日期替换日期,但保持相同的时间
我有一个datetime变量,它包含日期和时间,我试图用另一个日期替换该日期(避免说第二天),但保持相同的时间 My datetime变量如调试器中所示: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方法。它更改
我想将日期改为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