我有一个日期返回作为MySQL查询的一部分在形式2010-09-17。

我想设置变量$Date2到$Date5,如下所示:

$Date = $Date + 1

$Date = $Date + 2

从而返回2010-09-18,2010-09-19,等等。

我试过了

date('Y-m-d', strtotime($Date. ' + 1 day'))

但是这给了我$ date之前的日期。

以“Y-m-d”格式获取日期的正确方法是什么,以便它们可以在另一个查询中使用?


当前回答

另一种选择是将日期字符串转换为时间戳,然后添加适当的秒数。

$datetime_string = '2022-05-12 12:56:45';
$days_to_add = 1;
$new_timestamp = strtotime($datetime_string) + ($days_to_add * 60 * 60 * 24);

在此之后,您可以使用PHP的各种日期函数之一将时间戳转换为日期对象或将其格式化为人类可读的字符串。

$new_datetime_string = date('Y-m-d H:i:s', $new_timestamp);

其他回答

另一种选择是将日期字符串转换为时间戳,然后添加适当的秒数。

$datetime_string = '2022-05-12 12:56:45';
$days_to_add = 1;
$new_timestamp = strtotime($datetime_string) + ($days_to_add * 60 * 60 * 24);

在此之后,您可以使用PHP的各种日期函数之一将时间戳转换为日期对象或将其格式化为人类可读的字符串。

$new_datetime_string = date('Y-m-d H:i:s', $new_timestamp);

这个作品。您可以使用它的天,月,秒,并重新格式化日期根据您的要求

public function reformatDate($date, $difference_str, $return_format)
{
    return date($return_format, strtotime($date. ' ' . $difference_str));
}

例子

echo $this->reformatDate('2021-10-8', '+ 15 minutes', 'Y-m-d H:i:s');
echo $this->reformatDate('2021-10-8', '+ 1 hour', 'Y-m-d H:i:s');
echo $this->reformatDate('2021-10-8', '+ 1 day', 'Y-m-d H:i:s');

以下是对您的查询的最简单的解决方案

$date=date_create("2013-03-15"); // or your date string
date_add($date,date_interval_create_from_date_string("40 days"));// add number of days 
echo date_format($date,"Y-m-d"); //set date format of the result

使用变量表示天数

$myDate = "2014-01-16";
$nDays = 16;
$newDate = strtotime($myDate . '+ '.$nDays.' days');
echo new Date('d/m/Y', $newDate); //format new date 

要向某个日期添加特定天数,请使用以下函数。

function add_days_to_date($date1,$number_of_days){
    /*
    //$date1 is a string representing a date such as '2021-04-17 14:34:05'
    //$date1 =date('Y-m-d H:i:s'); 
    // function date without a secrod argument returns the current datetime as a string in the specified format
    */
    $str =' + '. $number_of_days. ' days';
    $date2= date('Y-m-d H:i:s', strtotime($date1. $str));
    return $date2; //$date2 is a string
}//[end function]