Imagesforyou.ru

IMG FOR YOU — ИНТЕРЬЕРНАЯ ФОТОСТУДИЯ
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Календарь в Битрикс24: основные возможности, создание событий, права доступа и синхронизация

Календарь в Битрикс24: основные возможности, создание событий, права доступа и синхронизация

Максим Волошин

Календарь помогает отслеживать важные события и быстро определять степень загруженности — свою или других сотрудников. Достаточно открыть необходимый период, и вы сразу поймете, какие дела нужно сделать и есть ли свободное время. Как работать с календарем в Битрикс24, читайте в этом материале.

Использование функций даты и времени

  1. Создайте строковую переменную now .
  2. Присвойте переменной now значение метки времени актуальной даты (сегодня).
  3. Создайте переменную $H и присвойте ей значение часов, выделенных из значения переменной $now .
  4. Создайте переменную $i и присвойте ей значение минут, выделенных из значения переменной $now .
  5. Показывать текущее время в виде: … часов…мин . Изменять окончание слова часов/часа/час в зависимости от кол-ва часов и минут.

Напоминание:
Time() – возвращает текущее время
Date(format,время) – возвращает время, заданного вторым параметром в указанном формате:

  • Часы – H
  • Минуты – i

Функция getdate в php

Функция getdate возвращает информацию о дате и/или времени

Работаем с датой и временем в php

В статье описано:
1. Как преобразовать UNIX timestamp в дату в заданном формате
2. Как узнать завтрашнюю/вчерашнюю дату
3. Как получить дату с определённым сдвигом (на X дней раньше/позже)
4. Как посчитать разницу между датами
5. Как перевести DDD дней в X лет Y месяцев Z лет
6. Как перевод из date в timestamp — разбор даты в русском формате

Работа с датой и временем в PHP относительно несложная. Наличие довольно большого количества функций делает код не таким громоздким (а в PHP 5.2 с появлением DateTime и в 5.3 с добавлением классов DateInterval и DatePeriod и отдельных методов — работа с датами стала ещё проще и удобнее). Итак, для работы с датой…Во-первых, в любом случае, следует иметь в виду, что:

  • практически любое действие можно сделать несколькими способами;
  • весь код написан для демонстрации и примеров работы;
  • не всегда предложенный альтернативный результат может подходить при использовании более ранней версии PHP (иногда проще устанавливать более раннюю версию PHP5.2, чем править работающий код многолетней давности);

В PHP 5.3 для корректной работы с датой во избежание ошибок Strict Standarts

. На сегодняшний день, как правило эта ситуация учитывается либо в скриптах, либо в настройках хостинга.

PHP преобразовать UNIX timestamp в дату в заданном формате

Одна из самых простых задач. Используется функция: date($format, $time)

Первым параметром передаём формат даты — подробнее см в документации (для “привычного нам” 28.02.2012 15:43:59 следует использовать:

  1. date ( ‘d.m.Y H:i:s’ , $time )

PHP как узнать завтрашнюю/вчерашнюю дату

Тут тоже всё просто. Функцией time() получаем текущее время в формате UNIX Timestamp. Отнимаем (вчерашняя дата) или прибавляем (завтра) нужное количество секунд (86400 = 3600*24 — в сутках) и получаем:

  1. $now = time (); // использовать не обязательно
  2. $yesterday = time ()- 3600 * 24 ;
  3. $tomorrow = time ()+ 3600 * 24 ;
  4. $weekBefore = time () — 3600 * 24 * 7 ; // неделю назад
  5. echo ‘Вчера: ‘ , date ( ‘d.m.Y’ , $yesterday ), ‘
  6. Завтра:’ , date ( ‘d.m.Y’ , $tomorrow );
Читайте так же:
Видеоплеер для изучения английского

PHP как получить дату с определённым сдвигом (на X дней раньше/позже)

Иногда требуется узнать дату, которая будет через несколько дней от указанной. Например, пользователь оплатил услугу 11 февраля 2013 года на 3 недели. Имеется информация об оплате. До какого числа оплачено?

Когда можно “просто” прибавить пару дней и получить 13 февраля — особых сложностей процедура не вызывает. Но как быть с разным количеством дней в месяце? Как быть с високосным годом? Всё уже придумано до нас — для вычисления даты по известному интервалу будем использовать mktime

  1. $payment = array( ‘day’ => 11 , ‘month’ => 2 , ‘year’ => 2013 );
  2. $toDate = mktime ( 0 , 0 , 0 , $payment [ ‘month’ ], $payment [ ‘day’ ]+ 3 * 7 , $payment [ ‘year’ ]);
  3. // вывод
  4. echo date ( ‘d.m.Y’ , $toDate );
  5. // в PHP > 5.3 с использованием DateInterval
  6. date_default_timezone_set ( ‘Europe/Moscow’ );
  7. $datetime = new DateTime ( date ());
  8. // минус 7 дней
  9. $datetime -> sub (new DateInterval ( ‘P7D’ )
  10. );

PHP как посчитать разницу между датами

Казалось бы простая ситуация — есть две даты, посчитать количество дней (месяцев и дней) между ними. Однако, “ручная” реализация потребует некоторого времени, и есть шанс что-либо упустить (для спортивного интереса — желающие попробовать могут оставлять код в комментариях). В PHP для вычисления разницы между датами есть встроенная функция date_diff(), или точнее Datetime::diff()

  1. $datetime1 = new DateTime ( ‘2013-05-01’ );
  2. $datetime2 = new DateTime ( ‘2013-01-01’ );
  3. $interval = $datetime1 -> diff ( $datetime2 );
  4. echo $interval -> format ( ‘%R%a days after New Year’ );

PHP перевести DDD дней в X лет Y месяцев Z лет

Иногда требуется вывести время после определённого события. Например, после регистрации прошло. Для удобства (3200 дней мало о чём говорит) восприятия перевести в годы и месяцы можно используя форматирование DateInterval::format()

  1. $registerDate = new DateTime ( ‘2009-03-03’ );
  2. $today = new DateTime ();
  3. $interval = $today -> diff ( $registerDate );
  4. echo ‘С момента регистрации прошло: ‘ ;
  5. echo $interval -> format ( ‘%a дней’ ). "n" ; // общее количество дней
  6. echo ‘ или ‘ ;
  7. echo $interval -> format ( ‘%m месяцев, %d дней’ ); // месяцев, дней

PHP перевод из date в timestamp — разбор даты в русском формате

Иногда требуется перевести дату в формате, удобном для восприятия в формат UNIX TIMESTAMP Для разбора даты в формате ‘2013-05-30 12:35′ на составляющие (отдельно получить год, месяц, день) можно воспользоваться функцией date_parse. Для перевода сразу в unix timestamp — можно использовать strtotime (а также вариации вроде ‘now’, ‘+1 day’, ‘next Thursday’ — можно посмотреть здесь):

  1. echo strtotime ( ‘2013-05-30’ );
  2. print_r ( date_parse ( ‘2013-05-30 12:35’ ));
Читайте так же:
Взломали вк и сменили пароль

Однако, для России более привычный формат ДД.ММ.ГГГГ . Можно, конечно, разбить дату по символу точки, получить день, месяц, год и при помощи функции mktime узнать соответствующее значение UNIX TIMESTAMP. В PHP5.3 появилась функция date_parse_from_format() , в которую можно передать строку с форматом. А для PHP5.2 я использовал strptime (о существовании которой, как выяснилось, не все догадываются, возможно, потому, что она банально не реализована для Windows: This function is not implemented on Windows platforms):

  1. $date = ‘30.05.2013 12:35’ ;
  2. $format = ‘d.m.Y H:i’ ;
  3. print_r ( date_parse_from_format ( $format , $date ));
  4. // альтернативный вариант для PHP5.2
  5. $format = ‘%d.%m.%Y %H:%M’ ; // отличается от используемого в функции date
  6. $d = strptime ( $date , $format );
  7. $newDate = mktime ( $d [ ‘tm_hour’ ], $d [ ‘tm_min’ ], $d [ ‘tm_sec’ ],
  8. $d [ ‘tm_mon’ ]+ 1 , $d [ ‘tm_mday’ ], $d [ ‘tm_year’ ]+ 1900 ); // tm_mon 0-11, tm_year 1900
  9. echo $newDate ;

Кроме того, у функции strptime есть особенности — месяц сдвинут на единичку (Январь — 0), а год — это количество лет с 1900 года, т.е. для 2013 $d[’tm_year’] будет равно 113.

Функция date

Эта функция возвратит пользователю строку в форме даты/времени, сделав это в определённом формате. Формат этот определяет сам пользователь.

Синтаксис функции выглядит так:

Видно, что формат указывается в качестве аргумента. Этим аргументом могут выступать самые разные символы, коих существует целая таблица:

Screenshot_2-1801-352c65.pngScreenshot_3-1801-6267df.png

Теперь давайте попробуем, как эта таблица работает на практике. Выведем текущий день недели:

У меня получился Wednesday, а вот что отобразится в консоли у вас, зависит от дня недели, в который вы напишете эту команду.

Теперь выведем дату в виде YYYY-ММ-DD:

А потом и дату, и время:

Результаты работы

В результате проделанной работы в Битрикс24 настроен бизнес-процесс, который в автоматическом режиме выполняет необходимые действия. При этом, что важно, работа бизнес-процесса не требует от пользователей никаких дополнительных действий, бизнес-процесс работает в «фоновом режиме».

А для чего этот бизнес-процесс бывает необходим на практике?

Во-первых, используя фильтры Битрикс24, мы можем отследить, у каких сделок изменилась стадия в определенный период времени.

Во-вторых, мы можем понять, какой была предыдущая стадия. Например, выбрав через фильтр негативные статусы, достаточно просто сделать вывод, после какой стадии «отваливаются» сделки. И возможно, внести необходимые коррективы в работу компании.

Читайте так же:
База данных регистратуры поликлиники

Данный функционал бывает удобен для анализа в «обратном» порядке — то есть через фильтры мы выбираем в поле «Предыдущая стадия» определенную стадию, и анализируя текущие стадии, мы понимаем, куда сделки «прыгнули».

Для комплексного анализа часто механизма фильтров и отчетов, которые имеются в Битрикс24, бывает недостаточно. Иногда правильнее, применив экспорт данных в Excel, построить необходимый отчет, используя всю мощь и гибкость данного инструмента. Или автоматизировать данный процесс,используя механизм Power Query.

Пример 2: Строка для объекта datetime

В таблице ниже показаны все коды формата, которые вы можете использовать:

ДирективаЗначениеПример
% aСокращенное название дня недели.Вс, пн, …
% АПолное название дня недели.Воскресенье понедельник, …
%wДень недели в виде десятичного числа.0, 1, …, 6
% dДень месяца в виде десятичной дроби с нулями.01, 02, …, 31
% -dДень месяца в виде десятичного числа.1, 2, …, 30
% bСокращенное название месяца.Янв, Фев, …, Дек
% BПолное название месяца.Январь Февраль, …
% mМесяц как десятичное число с нулями.01, 02, …, 12
% -mМесяц как десятичное число.1, 2, …, 12
% yГод без века как десятичное число с нулями.00, 01, …, 99
% -yГод без столетия как десятичное число.0, 1, …, 99
% YГод со столетием в виде десятичного числа.2013, 2019 и т. Д.
%HЧас (в 24-часовом формате) как десятичное число с нулями.00, 01, …, 23
%-HЧас (24-часовой формат) как десятичное число.0, 1, …, 23
%IЧас (12-часовой формат) как десятичное число с нулями.01, 02, …, 12
%-IЧас (12-часовой формат) в виде десятичного числа.1, 2, … 12
%pЛокализация AM или PM.до полудня, после полудня
% MМинута в виде десятичного числа с нулями.00, 01, …, 59
% -MМинута как десятичное число.0, 1, …, 59
% SВторой — десятичное число с нулями.00, 01, …, 59
% -SСекунда как десятичное число.0, 1, …, 59
% fМикросекунда в виде десятичного числа с нулями слева.000000–999999
%zСмещение UTC в форме + ЧЧММ или -ЧЧММ.
%ZНазвание часового пояса.
% jДень года в виде десятичного числа с нулями.001, 002, …, 366
% -jДень года в виде десятичного числа.1, 2, …, 366
% UНомер недели в году (воскресенье как первый день недели). Все дни нового года, предшествующие первому воскресенью, считаются нулевой неделей.00, 01, …, 53
%WНомер недели в году (понедельник как первый день недели). Все дни нового года, предшествующие первому понедельнику, считаются нулевой неделей.00, 01, …, 53
% cСоответствующее представление даты и времени языкового стандарта.30 сен, пн, 07:06:05 2013
%xСоответствующее представление даты языкового стандарта.30.09.13
%XСоответствующее представление времени локали.07:06:05
%%Буквальный символ «%».%

Как вставить текущее время в HTML

Вывести на страницу сайта текущее время используя только лишь HTML не получится.

Для того, чтобы вставить текущую дату и время на сайт будем использовать JavaScript.

За вывод даты и времени в JavaScript отвечает объект типа Date() .

Попробуем вывести текущую дату и время на экран с помощью встроенного скрипта:

Как видим, выводится вся информация о дате и времени.

Дата и время в HTML в привычном формате

Если мы хотим вывести дату и время в более привычном формате, можем воспользоваться функциями getFullYear() , getMonth() , getDate() , getHours() , getMinutes() , getSeconds() .

Поскольку функции возвращают значения месяцев, дней, часов, минут, секунд без ведущих нулей, нам понадобится написать дополнительную функцию, которая будет эти нули добавлять.

Также обратите внимание на то, что функция getMonth() возвращает значение от 0 до 11 (количество полных месяцев, прошедших от начала года до указанной даты), а не порядковый номер месяца от 1 до 12. Поэтому, чтобы получить календарный номер месяца нужно к результату функции прибавить единицу.

Вставить текущее время и дату в HTML в привычном формате можно с помощью следующего кода:

Таким образом у нас получилось вывести на страницу сайта точное время на момент открытия страницы.

Часы на сайт, обновляемые в реальном времени

Если мы хотим, чтобы пользователь всегда видел актуальное время, то есть хотим сделать часы на странице, нужно реализовать обновление времени один раз в секунду (либо в минуту, если вы не выводите секунды). Для этого воспользуемся интервалом в JavaScript.

Изменить формат даты и времени, выводимый в HTML код страницы, вы можете, комбинируя функции объекта Date() . Все они описаны в справочнике по JavaScript.

Поделиться в Facebook Поделиться в ВКонтакте Поделиться в Одноклассники Поделиться в Twitter

++++-

Здравствуйте.
Где-то копировал сценарий такой-же небольшой, подобный(!) этому (ниже)
_______________________________________
<body><center><div ></div>
<p>Время вашего пк</p><script language=»JavaScript»>
<!—<br />
function fulltime () <
var time=new Date();
document.clock.full. value=time.toLocaleString();
setTimeout(‘fulltime()’,500)
>
—>
</script><form name=»clock»><input size=»24″ name=»full»></form><script language=»JavaScript»>
fulltime ();
</script></center></body>
_______________________________________
Но была в нём строчка с чьим-то доменом, в которую вставлял поочерёдно time.windows.com , time.nist.gov , timeserver.ru. На странице браузера сразу 2 скрипта работали — который здесь и (мировой, а не клиентский) тот, что «обронил» случайно из несохранённого блокнота. В двух строках секунды с разным интервалом в зависимости от подставленного ntp, а при ручной корректировке времени пк изменение отображалось только в той строке, скрипт которой выше.
Может кто поможет — выложит сюда примерно то, что потерял, и не получается опять найти? 🙂

Кирилл, если я правильно вас понял, вы хотите сделать настраиваемые через JS скрипт часы.

По вашему описанию не совсем понятно как вы планируете пользоваться этим скриптом, но, в любом случае, один из вариантов как можно реализовать часы со «своим» временем — это взять как базу отсчета времени время сервера или время своего компьютера и прибавлять к нему то количество секунд, минут, часов, на которое отличается ваше желаемое время.

Например, вы знаете, что время компьютера 08:40, вам нужно, 09:52. Значит нужно прибавить к времени компьютера 1 час 12 минут (либо 72 минуты).

Установка компонентов времени осуществляется с помощью специальных функций:
setHours(количество часов) — установка значения часов;
setMinutes(количество минут) — установка значения минут;
setSeconds(количество секунд) — установка значения секунд.

Не буду копировать весь код, приведу только изменения:
В функции date_time() из примера со статьи после строки
var current_datetime = new Date();
нужно добавить:
current_datetime.setMinutes(current_datetime.getMinutes() + 12);
current_datetime.setHours(current_datetime.getHours() + 1);

Таким образом, каждый раз при обращении к функции date_time() будет выводиться время, скорректированное на указанное вами количество часов и минут (1 час и 12 минут в примере выше).

Если время компьютера больше, чем желаемое, аналогично примеру выше можно отнять необходимое количество часов, минут, секунд.

Что касается уведомлений — это также можно реализовать через JS. Информация по формированию уведомлений есть в JS справочниках.

Алекс, да, возможно.

При создании экземпляра Date() в нем содержится время на момент его создания.

Все, что вам нужно сделать — это создать и сохранить экземпляр Date() в момент появления сообщения:

var message_datetime = new Date();

Добавьте эту строку в функцию вывода нового сообщения и тогда для каждого сообщения будет фиксироваться время появления этого сообщения. Только не забудьте описать вывод message_datetime в нужном вам месте.

Благодарю за инфо. Но вообще я полный профан в этом деле и иду по пути наименьшего сопротивления. ) У меня как бы чат-бот, если можно так сказать, а не реальное общение.
Для появления сообщения служит простейший скрипт:

Соответственно на странице сообщения размещается:
<span style="display: none;"> сообщение </span>

Можно к этому как-то пришить вышесказанное?
Если долго объяснять и это очень муторно для вас, то можно оставить без ответа. )

Конечно можно. Вы правда не указали куда хотите выводить дату, поэтому сделал вывод после текста сообщения строкой ниже.
Замените ваш скрипт следующим:

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector