Страница 1 из 1

как вывести дату и нужно время

Добавлено: 14 окт 2024, 17:16
imamverdiyeveldar
Добрый день, есть поле с датой и выбором времени. Мне нужно вывести дату на -1 день (это получается interval -1 day) но время вне зависимости от установленного в поле должно быть 21:00
Например в поле 15.10.2024 17:05 мне нужно вывести 14.10.2024 21:00

Re: как вывести дату и нужно время

Добавлено: 14 окт 2024, 22:02
Fait
Как вариант - сделать поле Ajax запрос, и в нём прописать код, который будет указывать в поле с датой нужную дату.
Вставьте это в поле кода.
Вместо 777 укажите id поля с датой (должен быть тип расширенный календарь).

Код: Выделить всё

echo '<script>$(".form-group-'.$_GET['field_id'].' > label").hide()</script>'; // Скрываем название текущего поля на форме
$tm = time() - 86400;
$new_time = mktime(21,0,0,date('m',$tm),date('d',$tm),date('Y',$tm)); // Формируем нужную дату
echo '<script>$("#fields_777").val('.date('d.m.Y H:i',$new_time).');</script>'; // Записываем значение в поле с датой

Re: как вывести дату и нужно время

Добавлено: 14 окт 2024, 22:45
Fait
Погодите-ка, я наверное не так понял?
Где и как вы хотите вывести дату?
Мой код, указанный выше, меняет дату в самой форме. И обратите внимание, он это будет делать всякий раз, когда вы будете открывать форму.

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 09:23
imamverdiyeveldar
Fait писал(а): 14 окт 2024, 22:45 Погодите-ка, я наверное не так понял?
Где и как вы хотите вывести дату?
Мой код, указанный выше, меняет дату в самой форме. И обратите внимание, он это будет делать всякий раз, когда вы будете открывать форму.
Смотрите есть поле А , расширенный каленьдарь, там значение, допустим 15.10.2024 18:00

Нужно поле Б (дата) в которой будет показыватся 14.10.2024 21:00

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 10:03
Fait
imamverdiyeveldar писал(а): 15 окт 2024, 09:23 Смотрите есть поле А , расширенный каленьдарь, там значение, допустим 15.10.2024 18:00

Нужно поле Б (дата) в которой будет показыватся 14.10.2024 21:00
Поле Б без разницы какого типа?
По нему фильтры какие-то будут использоваться или нет?
А также, должно ли поле Б показываться в форме?

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 19:11
SalahievFR
imamverdiyeveldar писал(а): 15 окт 2024, 09:23
Fait писал(а): 14 окт 2024, 22:45 Погодите-ка, я наверное не так понял?
Где и как вы хотите вывести дату?
Мой код, указанный выше, меняет дату в самой форме. И обратите внимание, он это будет делать всякий раз, когда вы будете открывать форму.
Смотрите есть поле А , расширенный каленьдарь, там значение, допустим 15.10.2024 18:00

Нужно поле Б (дата) в которой будет показыватся 14.10.2024 21:00
Возможно вам поможет поле Динамическая дата

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 19:20
imamverdiyeveldar
SalahievFR писал(а): 15 окт 2024, 19:11
imamverdiyeveldar писал(а): 15 окт 2024, 09:23
Fait писал(а): 14 окт 2024, 22:45 Погодите-ка, я наверное не так понял?
Где и как вы хотите вывести дату?
Мой код, указанный выше, меняет дату в самой форме. И обратите внимание, он это будет делать всякий раз, когда вы будете открывать форму.
Смотрите есть поле А , расширенный каленьдарь, там значение, допустим 15.10.2024 18:00

Нужно поле Б (дата) в которой будет показыватся 14.10.2024 21:00
Возможно вам поможет поле Динамическая дата
Припомощи динамической даты я выводу "вчера" а со временем 21:00 мучаюсь

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 19:25
SalahievFR
Вам нужно в поле Б показывать 21:00 вчерашнего дня?

Re: как вывести дату и нужно время

Добавлено: 15 окт 2024, 22:46
Fait
SalahievFR писал(а): 15 окт 2024, 19:25 Вам нужно в поле Б показывать 21:00 вчерашнего дня?
Ему нужно в поле Б показывать 21:00 от даты из поля А.
imamverdiyeveldar писал(а): 15 окт 2024, 19:20 При помощи динамической даты я вывожу "вчера" а со временем 21:00 мучаюсь
Это поправимо, если изучить базовые команды SQL для работы с датой и временем. ;)
Алгоритм довольно прост - с помощью функции FROM_UNIXTIME получаем дату из поля "А" без учёта времени и конвертируем в unix формат через функцию UNIX_TIMESTAMP. После чего просто отнимаем количество секунд, содержащееся в 3 часах, то есть 60*60*3=10800.

И вот по итогу ваш код для поля Б (тип - динамическая дата):

Код: Выделить всё

UNIX_TIMESTAMP(FROM_UNIXTIME([777],'%Y-%m-%d'))-10800
Вместо 777 поставьте ID поля А.

P.S.: В следующий раз постарайтесь наиболее полно описывать задачу, чтобы не нужно было тратить время на вытягивание информации)
То есть сразу пишите все нужные ID полей и сущностей, задействованных в задаче.
Ещё очень хорошо, если будете писать типы полей.
А то эту задумку с датой можно было реализовать тремя разными путями, и у каждого свои плюсы и минусы)