使用date_add的PHP日期间隔

时间:2014-12-01 19:01:19

标签: php date

我有以下代码,它们在前2行上运行,占用我的开始日期,转换为unix时间戳,然后添加一天。

第3行正在尝试使用随后生成的值来使用日期间隔查找2个月内的日期。

不幸的是,date_add似乎返回错误' date_add()期望参数1为DateTime,给定整数'。

有人能告诉我如何使用unix时间戳完成此操作吗?

$startdate = strtotime('2014/12/19 15:00');
$weekstart = $startdate - (date("N",$startdate)*60*60*24)+(60*60*24);

$enddate = date_add($weekstart, DateInterval::createfromDateString('2 months'));

2 个答案:

答案 0 :(得分:1)

所以使用DateTime:

$startdate = new DateTime('2014/12/19 15:00');

内部DateTime的构造函数将使用strtotime(),为您提供strtotime()的解析逻辑的所有好处(和风险),以及从一开始就可以获得整个DateTime对象的所有好处。

您可以使用纯日期时间操作完成其余日期,而无需手动执行60 * 60 * 24类型的操作。

答案 1 :(得分:1)

似乎您想要创建具有不同间隔的两个不同的DateTime字符串。这应该做到。

$startdate = new DateTime('2014/12/19 15:00');
$weekstart = $startdate->modify('+1 day');
$weekstart = $weekstart->format('U'); //change $weekstart to unix timestamp//

$enddate = $startdate->modify('+2 months');
$enddate = $enddate->format('U'); //change $enddate to unix timestamp//