如何添加几个月到一个特定的日期
我只希望这个问题不会被标记为重复,因为我已经看到了类似的问题在stackoverflow,但他们都谈论增加日期的日期,这里的问题是,我想一些特别的月份添加到这是从我的数据库得到我试着用strtotime()
加入它,但迄今为止仅返回1 1970年1月特定日期,代码看起来像这样如何添加几个月到一个特定的日期
<?php echo date('jS F Y', strtotime("$date +1 month")); ?>
//This is the value of date
$date = $student->date;
如何我添加个月到这个特定的日期?请注意日期是我的数据库中的时间戳。感谢
有一个Unix时间戳,而不是实际日期。在这里,我使用DateTime类来使用该Unix时间戳创建一个日期时间对象。然后我可以添加一个月并格式化输出。
$date = new DateTime('@'.$student->date);
$date->modify('+1 month');
echo $date-format('jS F Y');
如果你要坚持使用date()
和strtotime()
你这样做:
echo date("jS F Y", strtotime("+1 month", $student->date));
strtotime()
将采取起始日期为第二个参数,然后你希望如何修改为您的首参数。
谢谢约翰,我尝试了第二个选项,你给了它,它的工作! – danidee 2014-10-08 14:30:20
PHP's strtotime()
函数允许您设置一个相对日期的第二个参数。
如果你想一个月添加到明天,这里是如何:您
<?php
echo date("jS F Y", strtotime("+1 month", strtotime("2014-10-09")));
// returns: 9th November 2014
你应该检查出的文档here,
但只是它是$日期 - >添加功能。它允许您使用DateInterval将任何时间量添加到时间戳。它有点棘手习惯,但这里有两个例子:
<?php
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('PT10H30S'));
echo $date->format('Y-m-d H:i:s') . "\n";
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>
,输出:
2000-01-01 10:00:30
2007-06-05 04:03:02
日期间隔在年月格式化天时间小步舞曲秒,简单地说在你想要的数量,它会增加它,所以在你的情况下:
<?php
$date->add(new DateInterval('P1M'));
echo $date->format('Y-m-d H:i:s') . "\n";
?>
'$ date'的值是什么?增加日期和月份并没有什么不同。 – 2014-10-08 14:15:32
日期的值是从数据库检索到的时间戳字段,我编辑了我的问题,虽然 – danidee 2014-10-08 14:18:07
显示一个实际的*值*。不是你如何得到这个价值。 'echo $ date;' – 2014-10-08 14:18:20