esvechka
Сообщения: 2 Зарегистрирован: 22 ноя 2023, 18:58
Имя: Евгений
Откуда: Россия
Сообщение
esvechka » 12 окт 2025, 21:50
Имеется следующий код:
Код: Выделить всё
$price = [330];
$ts_start = [327];
$ts_end = [328];
$d1 = DateTime::createFromFormat('U', $ts_start);
$d2 = DateTime::createFromFormat('U', $ts_end);
$interval = $d1->diff($d2);
$total_days = $interval->days;
$weeks = round($total_days / 7);
$months = ($interval->y * 12) + $interval->m;
$total_amount = floor($total_days * $price);
echo '<script>';
echo '$("#fields_701").val(' . $total_days . ');';
echo '$("#fields_728").val(' . $weeks . ');';
echo '$("#fields_699").val(' . $months . ');';
echo '$("#fields_333").val(' . $total_amount . ');';
echo '</script>';
Код подсчитывает количество дней, недель и месяцев для последующих расчетов. Суть проблемы в том что все нормально работает с типом поля Дата с календарем, а вот с Расширенным календарем нет. Принципиально нужен именно он. Подскажите куда копать.
support
Техническая поддержка
Сообщения: 7661 Зарегистрирован: 19 окт 2014, 18:22
Имя: Харчишин Сергей
Откуда: Крым, Евпатория
Сообщение
support » 14 окт 2025, 11:57
Проверяйте данные которые на входе, возможно в расширенном календаре используется дата + время и тогда расчеты нужно по другом уделать.
esvechka
Сообщения: 2 Зарегистрирован: 22 ноя 2023, 18:58
Имя: Евгений
Откуда: Россия
Сообщение
esvechka » 17 окт 2025, 20:41
На входе только даты, время не используется.
Fait
Инвестор
Сообщения: 1197 Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич
Контактная информация:
Сообщение
Fait » 07 ноя 2025, 20:01
Вы пытаетесь считать дату через unix формат, но оно там хранится строкой.
Вот ваш вариант:
Код: Выделить всё
$price = [330];
$ts_start = [327];
$ts_end = [328];
$ts_start = strtotime($ts_start);
$ts_end = strtotime($ts_end);
$d1 = DateTime::createFromFormat('U', $ts_start);
$d2 = DateTime::createFromFormat('U', $ts_end);
$interval = $d1->diff($d2);
$total_days = $interval->days;
$weeks = round($total_days / 7);
$months = ($interval->y * 12) + $interval->m;
$total_amount = floor($total_days * $price);
echo '<script>';
echo '$("#fields_701").val(' . $total_days . ');';
echo '$("#fields_728").val(' . $weeks . ');';
echo '$("#fields_699").val(' . $months . ');';
echo '$("#fields_333").val(' . $total_amount . ');';
echo '</script>';