根据周期间隔,一天和现有日期生成日期

时间:2014-04-06 20:08:29

标签: php date strtotime

我有一个包含不同工作日的数据库,我必须根据周期间隔(存储在数据库中)和(在数据库中存储的)工作日发生的日期进行计算以生成更多日期。 我的代码现在做的是:

  • 阅读前两个工作日 - >计算中间周数并保存周间隔
  • 阅读所有工作日 - >填写工作日发生的日期并将其保存在合同中。
  • 根据周间隔生成下一年的工作日。

关键是:对于每周的间隔为1周,应将一周中的更多日期保存为工作日。我已经使用此代码执行此操作,但它无法正常工作。

// Get the last workdate's actdate.
$workdate_date = $linked_workdate['Workdate']['workdate_actdate'];
// Calculate the new workdate's date
$date = date("Y-m-d", strtotime($workdate_date . "+" . $interval . " week"));

// If 'Monday' is filled in for this contract, calculate on which day the 
// Monday after the last interval is. Same for each day, obviously.
// The days are boolean.
if ($contract['Contract']['contract_maandag'] = 1){ 
    $date = date("Y-m-d", strtotime($date, "next Monday"));
}
if ($contract['Contract']['contract_dinsdag'] = 1){
    $date = date("Y-m-d", strtotime($date, "next Tuesday"));           
}
// After this, save $date in the database, but that works. 

这是我得到的错误:     strtotime()期望参数2为long,给定字符串

我现在很困,所以非常感谢帮助!

2 个答案:

答案 0 :(得分:0)

if ($contract['Contract']['contract_maandag'] = 1){ 
if ($contract['Contract']['contract_dinsdag'] = 1){

这不会奏效。你正在做一个作业(=),所以它总是如此。但是你想要比较(===)。建议始终执行(除非另有要求)使用严格(===)比较。

答案 1 :(得分:0)

嗯,=似乎不是问题,因为错误是关于比较之后的部分。试试

strtotime("$date next Monday");