在DateTime中添加1周以创建到期日期时间

时间:2015-02-11 15:16:26

标签: php mysql datetime

我以下列格式从数据库中获取保存的日期/时间,

$date_time = date("j M, Y, g:i a");  //1 Feb, 2015, 12:00 am

寻找一个在$ date_time中添加7天来创建到期日期的解决方案,尝试了一些在stackoverflow上讨论的解决方案,但它们都不适用于我,

任何帮助都会得到满足。感谢

被修改
@panther回答部分只使用日期

    $date_time = date("j M, Y");

但是有日期/时间

$date_time = date("j M, Y, g:i a");

添加7天

    $end_date  = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));

将返回结果" 1969年12月31日,上午12:00和#34;
所以我尝试只用Date来计算差异(Inside PHP While Loop)

        <?php if ($end_date>$date_time) { ?>
        Expired
        <?php } else { ?>
        Active
        <?php } ?>

它没有用,无论是将所有记录设置为活动还是已过期,

所以我回到Sqaure 1.

注意:我尝试使用UNIX_TIMESTAMP,但最终结果相同,要么将所有记录设置为“活动”或“已过期”。

3 个答案:

答案 0 :(得分:4)

试试这个:

$date_time = date("j M, Y, g:i a");
$end_date  = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));

答案 1 :(得分:0)

使用DateTime也是一个不错的选择:

$date_str = "..."; // from database
$date_format = "j M, Y, g:i a";
$expire_date = DateTime::createFromFormat($date_format, $date_str);
$expire_date = $expire_date->add(DateInterval::createFromDateString('+7 days'));

如果你需要将它格式化为字符串:

$expire_date->format($date_format);

答案 2 :(得分:0)

您可以尝试使用PHP DateTime Object获取当前时间

$date_time_obj = new \DateTime();
$date_time = $date_time->format('j M, Y, g:i a');

然后使用add()方法获取到期时间

$end_date_obj = clone $date_time_obj;
$end_date_obj = $end_date_obj->add(new \DateTimeInterval('P7D'));
$end_date = $end_date_obj->format('j M, Y, g:i a');

比其他答案复杂一点,我知道:)但也许将来会有所帮助!

干杯