PHP使用日期名称

时间:2015-05-01 14:24:55

标签: php date

我目前正在尝试使用以下格式从当前日期获取日期列表,以便我可以处理它并将其粘贴到我的数据库中 星期六/ 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  

这意味着日期和月份正在交换,导致这种情况的原因是什么?

2 个答案:

答案 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);