我以下列格式从数据库中获取保存的日期/时间,
$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,但最终结果相同,要么将所有记录设置为“活动”或“已过期”。
答案 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');
比其他答案复杂一点,我知道:)但也许将来会有所帮助!
干杯