我有以下代码,它们在前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'));
答案 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//