Генерация даты на основе недельного интервала, дня и существующей даты
У меня есть база данных с разными рабочими датами, и я должен сделать расчет, который генерирует больше дат, основываясь на интервале недели (хранится в базе данных) и (в базе данных хранится) дней, в которые происходят рабочие дни. Что мой код делает сейчас, так это:
- Прочитайте первые две рабочие даты -> Рассчитайте промежуточные недели и сохраните интервал недели
- Прочитайте все рабочие даты -> заполните дни, в которые происходит рабочая дата, и сохраните их в договоре.
- Генерируйте рабочие даты на следующий год, основываясь на недельном интервале.
Дело в том, что для каждой недели с интервалом в 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){
Это не сработает. Вы делаете задание (=), так что это всегда так. Но вы хотите сравнение (===). Рекомендуется всегда (за исключением случаев, когда требуется) использовать строгое сравнение (===).