2009-06-17 167 views
1

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

有关如何做到这一点的任何建议?谢谢!

回答

3

您可以使用strtotime为日期添加时间 - 如果不传递任何参数,则需要第二个参数为当前时间。然后,您可以创建时间传递给date函数来创建你的时间戳:

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

我觉得DATE_ADD(CURDATE(),间隔2周)将增加2个weekss为当前日期,例如

0

如果您希望广告在某一天的某个时间到期,您可以使用mktime:

$ day = date(“d”)+($ weeks * 7);
mktime($ hour,$ minute,$ second,$ month,$ day,$ year);

0

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

strtotime('now'); 

time(); 

其中两个返回当前(UNIX)时间戳。

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

这真的取决于你使用的日期是什么:日期比较之后,可以通过从数据库中获取的时间戳和进行简单的算术运算,如微不足道来完成。