我目前正在尝试使用以下格式从当前日期获取日期列表,以便我可以处理它并将其粘贴到我的数据库中 星期六/ 02-05-2015
到目前为止,我已经设法让系统正确输出日期,但无法让它在单日值中增加。 我目前尝试增加此代码的代码如下
$tempStartDateN = ("$splode[0]/$splode[1]/$splode[2]/$splode[3]");
echo $tempStartDateN;
$tempStartDateN = date('l/d/m/Y', strtotime($tempStartDateN . ' + 1 day'));
echo $tempStartDateN;
我目前正在使用explode来处理增量后的数据,这样可以正常工作,但只要包含日期名称就无法使日期本身增加。
目前,使用此代码获取时间,该代码使用explode
进行后处理$OldDateArray = date("Y/m/d/l");
所以为了保持一个很长的问题,增加一个需要日期名称,日期,月份和年份的日期的最佳方法是什么?
编辑:
继承了我目前的代码,感谢SamV
$date = date("l/d/m/Y");
echo $date;
echo ('</br>');
list($weekdayName, $dateString) = explode("/", $date, 2);
$dateObj = new \DateTime($dateString);
for($i=0; $i<=5; $i++){
$dateObj->add(new \DateInterval("P1D")); // P1D stands for "Period 1 Day"
echo $dateObj->format("l/d/m/Y"); // Sunday/03/05/2015
echo ('</br>');
}
但这是做什么的:
Friday/01/05/2015
Tuesday/06/01/2015
Wednesday/07/01/2015
Thursday/08/01/2015
Friday/09/01/2015
Saturday/10/01/2015
Sunday/11/01/2015
这意味着日期和月份正在交换,导致这种情况的原因是什么?
答案 0 :(得分:2)
您无需解析工作日名称以将日期添加到日期。
$date = "Saturday/02-05-2015";
list($weekdayName, $dateString) = explode("/", $date, 2); // Parse "02-05-2015"
$dateObj = new \DateTime($dateString);
$dateObj->add(new \DateInterval("P1D")); // P1D stands for "Period 1 Day"
echo $dateObj->format("l/d/m/Y"); // Sunday/03/05/2015
我使用了DateTime
类,这里是documentation。
我写下了你自己想做的事情,不知道是什么导致了你的问题。这段代码虽然有效。
$date = "Friday/01-05-2015";
list($weekdayName, $dateString) = explode("/", $date, 2); // Parse "01-05-2015"
$dateObj = new \DateTime($dateString);
for($i = 0; $i < 5; $i++) {
$dateObj->add(new \DateInterval("P1D")); // P1D stands for "Period 1 Day"
echo $dateObj->format("l/d/m/Y") . '<br>';
}
输出:
Saturday/02/05/2015
Sunday/03/05/2015
Monday/04/05/2015
Tuesday/05/05/2015
Wednesday/06/05/2015
答案 1 :(得分:0)
如果strtotime
能够解析日期,则返回时间戳。为什么不加一天的秒数呢?水木清华。比如$timestamp += 24 * 3600;
P.S。据我所知,strtotime
可以接受时间戳作为第二个参数(http://us2.php.net/manual/en/function.strtotime.php)smth。比如$timestamp = strtotime('+1 day', $timestamp);