Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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/3/wix/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_Datetime - Fatal编程技术网

Php 将当前时间添加到日期时间

Php 将当前时间添加到日期时间,php,datetime,Php,Datetime,我想添加5天和当前时间的日期,我在字符串中 $date = new DateTime('2013-11-21'); date_add($date, date_interval_create_from_date_string('5 days')); $curtime = date('H:i:s'); 如何将当前时间添加到DateTime,或者有其他更好的方法吗?您可以这样添加5天: $nextX = time() + (5 * 24 * 60 * 60); 5天*24小时*60分钟*60秒

我想添加5天和当前时间的日期,我在字符串中

$date = new DateTime('2013-11-21');
date_add($date, date_interval_create_from_date_string('5 days'));
$curtime = date('H:i:s');

如何将当前时间添加到DateTime,或者有其他更好的方法吗?

您可以这样添加5天:

 $nextX = time() + (5 * 24 * 60 * 60);
5天*24小时*60分钟*60秒

$date = '2013-11-21';
$date = strtotime($date);
$date = strtotime("+7 day", $date);
echo date('M d, Y', $date);

只需编辑您的最后一条路线-我认为这是解决您问题的最客观的方法。代码的其余部分是正确的

$curtime = $date->format('Y-m-d H:i:s');
请记住,您的第二条车道只是以下各项的别名:

$date->add(DateInterval::createFromDateString('5 days'));
因此,完整的代码是:

$date = new DateTime('2013-11-21');
$date->add(DateInterval::createFromDateString('5 days'));
$curtime = $date->format('Y-m-d H:i:s');
编辑:我刚刚又读了你的问题,你问我如何将当前时间添加到此日期。如果要添加时间,则需要从当前日期创建时间。这不是一个完美的解决方案,但我仍在努力:

$now = new DateTime(date('1970-01-01 H:i:s'));
$date->add(DateInterval::createFromDateString($now->getTimestamp() . ' seconds'));
$curtime = $date->format('Y-m-d H:i:s');
echo $curtime;
EDIT2:我已经对其进行了更多更正,请查看以下代码:

$date = new DateTime('2013-11-21');
$date->add(DateInterval::createFromDateString('5 days'));

$now = new DateTime('now');
$today = new DateTime(date('Y-m-d'));

$time = $today->diff($now);

$date->add($time);

echo $date->format('Y-m-d H:i:s');
EDIT3:记住时区:

$date = new DateTime('2013-11-21', new DateTimeZone('Europe/Warsaw'));
$date->add(DateInterval::createFromDateString('5 days'));

$now = new DateTime('now', new DateTimeZone('Europe/Warsaw'));
$today = new DateTime(date('Y-m-d'), new DateTimeZone('Europe/Warsaw'));


$time = $today->diff($now);

$date->add($time);

echo $date->format('Y-m-d H:i:s');
和小提琴:

试试这个

$hour_two = "2013-11-21";
$date = strtotime($hour_two);
$hour_two = $date  + (5 * 24 * 60 * 60);
$hour_two=date('Y-m-d',$hour_two);
$currenttime = date('H:i:s');
$h =  strtotime($currenttime);
$minute = date("i", $h);
$second = date("s", $h);
$hour = date("H", $h);
$new_time = $hour_two." ".$hour.":".$minute.":".$second;
echo $new_time."<br/>"; // here is your final date time
$timeto_string=strtotime($new_time);    // test using strtotime
echo date('Y-m-d H:i:s',$timeto_string);  // print by formating
$hour\u two=“2013-11-21”;
$date=strottime($hour\u two);
$hour_two=$date+(5*24*60*60);
$hour\u two=日期('Y-m-d',$hour\u two);
$currenttime=日期('H:i:s');
$h=实时时间($currenttime);
$minute=日期(“i”、$h);
$second=日期(“s”,即$h);
$hour=日期(“H”,即$H);
$new_time=$hour_two.“$hour.”:“$minute.”:“$second;
回声$new_time.“
”;/这是你最后的约会时间 $timeto_string=strottime($new_time);//使用strotime进行测试 回显日期('Y-m-d H:i:s',$timeto_字符串);//格式化打印
你的代码给我一个结果:2013-11-26 12:44:17。这不是正确的时间,但在您的解决方案中添加一个小时和几天并不是问题。谢谢。顺便说一句,是我的问题写得不好,还是你是唯一一个正确阅读它的人?好吧,确定你需要在
DateTime
对象的每个构造函数中放置正确时区的时间。我已经为您输入并编辑了,请查看(最后一个),关于您的问题,我认为这很好,但您没有尝试在代码中以任何方式添加时间,因此我们假设您一开始只想添加5天:PSorry,这不是我问题的答案。您不需要添加当前时间。
$curtime = date('H:i:s');
$date = @date("Y-m-d H:i:s",strtotime($mydate.$curtime)) ;