如何在特定日期添加月份

时间:2014-10-08 14:14:46

标签: php mysql date

我只是希望这个问题不会被标记为重复,因为我在stackoverflow上看到了类似的问题,但他们都谈到了添加日期,这里的问题是我想添加一些从我的数据库中获取的特定日期特定月份我尝试使用strtotime()添加它但日期刚刚返回1970年1月1日,代码看起来像这样

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

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

如何在此特定日期添加月份?请注意,日期是我数据库中的时间戳。谢谢

3 个答案:

答案 0 :(得分:1)

您有一个Unix时间戳,而不是实际日期。这里我使用DateTime类使用该Unix时间戳创建一个datetime对象。然后我可以添加一个月并格式化输出。

$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()将开始日期作为第二个参数,然后将您希望如何将其修改为第一个参数。

答案 1 :(得分:1)

您应该查看文档here

但正好是$ date-&gt;添加功能。它允许您使用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";
?>

答案 2 :(得分:0)

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

如果您想在明天添加一个月,请按以下方式进行:

<?php

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

// returns: 9th November 2014