在 DateTime 中添加 1 周以创建到期日期时间
Add 1 Week in DateTime to Create Expiry DateTime
我正在以下列格式从数据库中保存 Date/Time,
$date_time = date("j M, Y, g:i a"); //1 Feb, 2015, 12:00 am
寻找在 $date_time 中添加 7 天的解决方案来创建到期日期,尝试了 Whosebug 上讨论的几种解决方案,但其中 none 对我有用,
我们将不胜感激任何帮助。谢谢
已编辑
@panther 回答部分仅适用于 Date
$date_time = date("j M, Y");
但 Date/Time
$date_time = date("j M, Y, g:i a");
增加 7 天
$end_date = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));
将 return 结果“1969 年 12 月 31 日,12:00 上午”
所以我尝试只用 Date 来计算差异(在 PHP While 循环中)
<?php if ($end_date>$date_time) { ?>
Expired
<?php } else { ?>
Active
<?php } ?>
它没有用,它要么将所有记录设置为有效或已过期,
所以我回到 Sqaure 1。
注意: 我试过 UNIX_TIMESTAMP 但最终结果相同,将所有记录设置为有效或已过期。
试试这个:
$date_time = date("j M, Y, g:i a");
$end_date = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));
使用 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);
您可以尝试使用 PHPs DateTime 对象来获取当前时间
$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');
比其他答案复杂一点,我知道 :) 但也许将来会更有帮助!
干杯
我正在以下列格式从数据库中保存 Date/Time,
$date_time = date("j M, Y, g:i a"); //1 Feb, 2015, 12:00 am
寻找在 $date_time 中添加 7 天的解决方案来创建到期日期,尝试了 Whosebug 上讨论的几种解决方案,但其中 none 对我有用,
我们将不胜感激任何帮助。谢谢
已编辑
@panther 回答部分仅适用于 Date
$date_time = date("j M, Y");
但 Date/Time
$date_time = date("j M, Y, g:i a");
增加 7 天
$end_date = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));
将 return 结果“1969 年 12 月 31 日,12:00 上午”
所以我尝试只用 Date 来计算差异(在 PHP While 循环中)
<?php if ($end_date>$date_time) { ?>
Expired
<?php } else { ?>
Active
<?php } ?>
它没有用,它要么将所有记录设置为有效或已过期,
所以我回到 Sqaure 1。
注意: 我试过 UNIX_TIMESTAMP 但最终结果相同,将所有记录设置为有效或已过期。
试试这个:
$date_time = date("j M, Y, g:i a");
$end_date = date("j M, Y, g:i a", strtotime($date_time . ' + 7 days'));
使用 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);
您可以尝试使用 PHPs DateTime 对象来获取当前时间
$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');
比其他答案复杂一点,我知道 :) 但也许将来会更有帮助!
干杯