Я хочу добавлять 0,1 к начальному значению 0 каждые две недели после указанной даты.
Пример:
Date = 05-26-2024; InitVal = 0; AddVal = 0.1;
26-е число было 4 недели назад, 23 июня 2024 г., что означает, что 0 теперь должно быть 0,2.
Мне не удалось найти в Интернете что-то, что могло бы сработать, или, по крайней мере, что-то, что я понимаю, поэтому я обращаюсь к вам за помощью!
Я просмотрел несколько кодов, но они не совсем соответствовали тому, что я пытался сделать, и я не могу изменить их под свои нужды. Это личный веб-сайт, и я просто хочу отслеживать определенные проекты определенным образом.
Возможно это поможет
PHP time() и strtotime() сообщают время в секундах. Чтобы узнать, сколько недель прошло между указанной вами датой и сейчас, мы можем сделать:
$startDate = '2024-05-26 00:00:01';
$secondsInWeek = 60 * 60 * 24 * 7;
$weekDiff = (time() - strtotime($startDate)) / $secondsInWeek;
В этот момент $weekDiff
будет около 4.125.
Вы хотите добавлять 0,1 к первоначальному значению каждые две недели:
$initial = 0.0;
$increase = 0.1;
$stepNo = intdiv(floor($weekDiff), 2);
$value = $initial + $stepNo * $increase;
В результате $value
будет равен 0,2. Смотрите: https://3v4l.org/gZgeY
Округлив $weekDiff
вниз с помощью floor() , получим 4,0. А деление целого числа на 2 дает 2. Используя это число в качестве шага, вы можете рассчитать свое значение. Обратите внимание, что intdiv() всегда возвращает меньшее целое число, которое является целым числом. Итак, intdiv(3.5,2)
есть 1
.
Если вы получили предупреждение типа:
Предупреждение: неявное преобразование из float в int теряет точность.
Вы можете использовать intval() в качестве аргумента.
Расчеты времени с использованием 60 * 60 * 24
могут быть испорчены переходом на летнее время, не так ли?
Вы спрашиваете, как рассчитать количество недель между двумя датами?