PHP Добавлять значение от 0,1 до 0 каждые две недели после указанной даты?

Я хочу добавлять 0,1 к начальному значению 0 каждые две недели после указанной даты.

Пример: Date = 05-26-2024; InitVal = 0; AddVal = 0.1; 26-е число было 4 недели назад, 23 июня 2024 г., что означает, что 0 теперь должно быть 0,2.

Мне не удалось найти в Интернете что-то, что могло бы сработать, или, по крайней мере, что-то, что я понимаю, поэтому я обращаюсь к вам за помощью!

Я просмотрел несколько кодов, но они не совсем соответствовали тому, что я пытался сделать, и я не могу изменить их под свои нужды. Это личный веб-сайт, и я просто хочу отслеживать определенные проекты определенным образом.

Вы спрашиваете, как рассчитать количество недель между двумя датами?

ADyson 23.06.2024 20:44

Возможно это поможет

ADyson 23.06.2024 21:50
php.net/manual/en/datetime.diff
Sammitch 24.06.2024 03:54
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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 могут быть испорчены переходом на летнее время, не так ли?

mickmackusa 24.06.2024 01:16

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