Генерация даты на основе недельного интервала, дня и существующей даты

У меня есть база данных с разными рабочими датами, и я должен сделать расчет, который генерирует больше дат, основываясь на интервале недели (хранится в базе данных) и (в базе данных хранится) дней, в которые происходят рабочие дни. Что мой код делает сейчас, так это:

  • Прочитайте первые две рабочие даты -> Рассчитайте промежуточные недели и сохраните интервал недели
  • Прочитайте все рабочие даты -> заполните дни, в которые происходит рабочая дата, и сохраните их в договоре.
  • Генерируйте рабочие даты на следующий год, основываясь на недельном интервале.

Дело в том, что для каждой недели с интервалом в 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 будет длинным, задана строка

Я застрял прямо сейчас, поэтому помощь приветствуется!

2 ответа

Что ж, похоже, что проблема не в =, так как ошибка связана с той частью, которая после сравнения. Пытаться

strtotime("$date next Monday");
if ($contract['Contract']['contract_maandag'] = 1){ 
if ($contract['Contract']['contract_dinsdag'] = 1){

Это не сработает. Вы делаете задание (=), так что это всегда так. Но вы хотите сравнение (===). Рекомендуется всегда (за исключением случаев, когда требуется) использовать строгое сравнение (===).

Другие вопросы по тегам