我需要制作一个时间戳来放入MySQL。用户正在提交一个数字(几周),我需要将这几周添加到今天的日期。我要做的是计算用户提交的广告的结束日期。

有关如何执行此操作的任何建议?谢谢!

有帮助吗?

解决方案

您可以使用 strtotime 为日期添加时间 - 它如果没有传递,则采用第二个参数,即当前时间。然后,您可以将创建的时间传递给 date 函数,以创建时间戳:

$timestamp = date('Y-m-d H:i:s', strtotime('+10 weeks'));

其他提示

我认为DATE_ADD(CURDATE(),INTERVAL 2 WEEK)会在当前日期增加2周,例如

如果您希望广告在一天的特定时间到期,您可以使用mktime:
点击     $ day = date(" d")+($ weeks * 7);
    mktime($小时,$分钟,$第二,$月份,$日,$年);点击

只是补充一下,有人会说将UNIX时间作为普通的int字段存储在数据库中是一种更灵活,更便携的解决方案。此外,插入和更新发生得更快,因为它们只涉及存储简单的整数。这实际上取决于您在数据库级别需要多少日期操作。我倾向于提高可移植性,并在PHP中进行所有日期计算。要存储当前时间戳,我只需将输出插入整数列:

strtotime('now');

time();

,它们都返回当前(unix)时间戳。此后的日期比较可以通过从数据库中获取时间戳并执行简单的算术运算来完成,如下所示:

if($tsFromDb > strtotime('+28 days')) {
   echo 'it is the future, zombies!';
}

这实际上取决于您使用的日期。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top