2014-10-08 233 views
1

我只希望这个问题不会被标记为重复,因为我已经看到了类似的问题在stackoverflow,但他们都谈论增加日期的日期,这里的问题是,我想一些特别的月份添加到这是从我的数据库得到我试着用strtotime()加入它,但迄今为止仅返回1 1970年1月特定日期,代码看起来像这样如何添加几个月到一个特定的日期

<?php echo date('jS F Y', strtotime("$date +1 month")); ?> 

//This is the value of date 
$date = $student->date; 

如何我添加个月到这个特定的日期?请注意日期是我的数据库中的时间戳。感谢

+0

'$ date'的值是什么?增加日期和月份并没有什么不同。 – 2014-10-08 14:15:32

+0

日期的值是从数据库检索到的时间戳字段,我编辑了我的问题,虽然 – danidee 2014-10-08 14:18:07

+0

显示一个实际的*值*。不是你如何得到这个价值。 'echo $ date;' – 2014-10-08 14:18:20

回答

1

有一个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()将采取起始日期为第二个参数,然后你希望如何修改为您的首参数。

+0

谢谢约翰,我尝试了第二个选项,你给了它,它的工作! – danidee 2014-10-08 14:30:20

0

PHP's strtotime()函数允许您设置一个相对日期的第二个参数。

如果你想一个月添加到明天,这里是如何:您

<?php 

echo date("jS F Y", strtotime("+1 month", strtotime("2014-10-09"))); 

// returns: 9th November 2014 
1

你应该检查出的文档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"; 
?>