在2周内在PHP中获取日期

时间:2010-08-27 08:24:06

标签: php datetime

$addhr = time() + (1 * 13 * 60 * 60);
$curDateTimeMil= date("Y-m-d G:i:s",$addhr);
echo $curDateTimeMil; 

这将回显2010-08-27 16:21:31

如何在2周后获得日期? (9月10日)

3 个答案:

答案 0 :(得分:24)

$dateInTwoWeeks = strtotime('+2 weeks');

请参阅strtotime()


更新#1 :是的,这是一种懒惰的方式。但是,我确实认为可能的负面性能影响可以通过对代码的可读性/理解的积极影响来抵消。如果性能成为问题,可以切换到本机(基于整数)时间操作(并添加注释)。


更新#2 :可选的第二个参数是参考日期。 E.g:

strtotime('+2 weeks', mktime(0, 0, 0, 2, 8, 1984)); // 8th Feb. 1984 + 2 weeks

答案 1 :(得分:4)

您可以使用mktime()指定开始时间(从何处计算)。

示例:2010年9月10日后两周(即+14天):

 $date = date("Y-m-d", mktime(0, 0, 0, 9, 10 + 14, 2010);

从今天开始两周后(+14天)的日期(不是时间):

 $date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+14, date("Y")));

从现在开始,两周后(+14天)的时间为:

 $date = date("Y-m-d G:i:s", mktime(date("G"), date("i"), date("s"), date("m"), date("d")+14, date("Y")));

答案 2 :(得分:3)

您只需添加两周的秒数即可:

2 weeks = 2 · 7 days = 14 days
        = 14 · 24 hours = 336 hours
        = 336 · 60 minutes = 20160 minutes
        = 20160 · 60 seconds = 1209600 seconds

所以:

$curDateTimeMil += 1209600;
// or
$curDateTimeMil += 2 * 7 * 24 * 60 * 60;