我想从当前日期找到下一次出现的日期。
例如,假设我想从当前日期找到该月的第20个
如果当前日期是10月10日,则返回结果2014-10-20(Y-m-d) 如果当前日期是10月22日,则返回结果2014-11-20(Y-m-d)
答案 0 :(得分:1)
我刚刚使用while循环创建了一个解决方案。
$oldd= "2014-06-20";
$newdate = date("Y-m-d",strtotime($oldd."+1months"));
while(strtotime($newdate) <= strtotime(date("Y-m-d")))
{
$newdate = date("Y-m-d",strtotime($newdate."+1months"));
}
echo $newdate;
答案 1 :(得分:0)
并将其传递给strtotime()。您需要从参考时间字符串中提取的时间信息。像这样:
$refdate = '2014-02-25 10:30:00';
$timestamp = strtotime($refdate);
echo date('Y-m-d H:i:s',
strtotime("next Thursday " . date('H:i:s', $timestamp), $timestamp)
);
使用字符串串联可以达到相同的结果:
echo date('Y-m-d', strtotime("next Thursday", $timestamp)
. ' ' . date('H:i:s', $timestamp);
答案 2 :(得分:0)
另一种方法,您可以使用DateTime
对象的方法,PHP在处理日期时间方面确实具有丰富的API。
$current_date = new DateTime('2014-06-20');
if ($current_date->format('d') >= 20) {
// $current_date->modify('last day of this month')->modify("+20 days");
$current_date->modify('first day of next month')->modify("+19 days");
}else{
$current_date->modify('first day of this month')->modify("+19 days");
}
echo $current_date->format("Y-m-d");
http://php.net/manual/en/datetime.modify.php http://php.net/manual/en/datetime.formats.relative.php