- Возраст | PHP и JavaScript
- Правильное склонение по-русски: «год», «года», «лет» в JavaScript
- Сравнение дат в формате «год месяц день»
- Вычисление возраста по дате рождения
- Подсчёт разницы лет
- Определить количество дней между двумя датами
- Как посчитать разницу между датами в годах на PHP
- «Год», «года», «лет» в зависимости от числа
- Рассчитать возраст на PHP
- Возраст со словом «год», «года» или «лет»
- 11 комментариев:
- Формат данных и подсчет возраста в JavaScript
- Введение
- Объект даты и времени в Javascript
- Написание веб-приложения
- Взаимодействие с пользователем: alert, prompt, confirm
- alert
- prompt
- confirm
- Особенности встроенных функций
- Резюме
Возраст | PHP и JavaScript
Фраза «мы работаем с 1880 года» звучит менее впечатляюще, чем «мы работаем более ». Можно, конечно, из года в год 1 января менять цифру «», а можно написать короткий скрипт, который сам рассчитает правильное количество лет.
Правильное склонение по-русски: «год», «года», «лет» в JavaScript
Сравнение дат в формате «год месяц день»
Вычисление возраста по дате рождения
Подсчёт разницы лет
Определить количество дней между двумя датами
Как посчитать разницу между датами в годах на PHP
«Год», «года», «лет» в зависимости от числа
echo YearTextArg(date('Y')-1880); ?>
Рассчитать возраст на PHP
29/02/1880') ->diff(new DateTime('now')) ->y; echo $age; ?>
Возраст со словом «год», «года» или «лет»
29/02/1880') ->diff(new DateTime('now')) ->y; function YearTextArg($year) < $m = substr($year,-1,1); $l = substr($year,-2,2); return $year. ' ' .((($m==1)&&($l!=11))?'год':((($m==2)&&($l!=12)||($m==3)&&($l!=13)||($m==4)&&($l!=14))?'года':'лет')); >echo YearTextArg($age); ?>
11 комментариев:
Анонимный Спасибо, отличные скрипты)) NMitra Благодарю за отзыв! Александр Шаповал Вопрос по «Возраст со словом «год», «года» или «лет»» — последний пример: я, использую этот пример для вычисления возраст юзера в CMS Joomla. Как в строку «RETURN», вместо русских: ‘год’, ‘года’ и ‘лет’, вставить языковую переменную Joomla. Языковая переменная, выглядит вот так:
Заранее благодарю за ответ Александр Шаповал Не пропустило языковую переменную. Дублирую снова: языковая переменная, выглядит вот так: echo JText::_( ‘COM_CCK_LANG_VAR’ ); NMitra А зачем? Тогда нужно три переменных.
Для того, чтобы написать код в комментариях, пожалуйста используйте http://shpargalkablog.ru/2010/12/napisat-kod-tekstom.html Александр Шаповал Ок. Понял.
Так как все же ПРАВИЛЬНО вставить эту переменную вместо ‘год’ — эту: , вместо ‘года’ — эту: и вместо ‘лет’ — эту: ? NMitra Не, вместо ‘год’ пишите сразу JText::_( ‘COM_CCK_LANG_VAR1’ )
Я сама php знаю поскольку постольку, просто он похож на JS Александр Шаповал NMitra, спасибо! Заработало!
Ну и соответственно, нужно задать значения языковым переменным в lang-LANG.overide.ini Vegan Boom Спасибо! В очередной раз нашла в этом блоге нужную информацию.
А подскажите, пожалуйста ещё и это. Как изменить этот код в JavaScript, если хочу, чтобы отражалось следующее:
Возраст автора на момент написания статьи: . лет, . месяцев.
Vegan Boom Дополнение к предыдущему моему комментарию.
Важно, чтобы я могла это вставить в шаблон сообщений. И у каждого конкретного поста ничего бы не нужно было исправлять. Один универсальный код для всех постов. NMitra Дополнила статью примером
Формат данных и подсчет возраста в JavaScript
03.11.2015
4109
Введение
Как веб-разработчик, Вы можете знать, что форматирование данных на серверном языке – не очень сложная задача. Достаточно базового понимания языка и того, что Вам нужно для реализации, и вот – у Вас есть хорошо отформатированный объект даты и времени. Например, следующий код С# является хорошо отформатированным и может предоставить нужный Вам объект даты и времени.
var dateOfBirth = new DateTime(1995, 08, 29); // My date of birth
var formatted = dateOfBirth.ToString( «MMMM dd, yyyy» );
// Would hold: August 29, 1995
В выше написанном коде мы предусмотрели формат данных, который нам нужен, и код, что обеспечит ожидаемый результат. Впрочем, делать это в JavaScript весьма трудно, потому как в JavaScript нет переопределенного метода ToString, который может преобразовать объект даты и времени в должным образом форматированное значение.
Тем не менее, объекты Date в JavaScript используют методы, с помощью которых можно извлечь значения месяца, дня или года. Мы будем их использовать, чтобы сгенерировать форматированный string для объекта date. Также заметим, что в JavaScript объект даты и времени является числом, которое отображается как количество миллисекунд от 1-го января 1970 г. Поэтому, чтобы не писать свой собственный код для подсчета месяцев и дат, можете использовать встроенные функции getMonth, getDate и др. чтобы получить нужные значения. В нашей статье мы покажем Вам, как написать код и как правильно форматировать запись string в объект даты и времени.
Объект даты и времени в Javascript
Объект даты и времени (Date) в JavaScript намного компактнее, чем в других языках программирования. Он не обеспечивает множество функций и особенностей. Это просто конструктор, который принимает число миллисекунд или значение строки, что представляет объект даты и времени в пределах от 1 января 1970 года до сегодняшнего дня (каким бы он ни был). Вы легко можете создать его экземпляр, используя следующий код
var date = Date.now(); // current date time
var date = new Date(); // new instance; default
var date = new Date( ‘string-notation-of-datetime’ );
// Any date time upto 1 January 1970 from Now.
Тема связана со специальностями:
Теперь давайте поработаем с данным исходным кодом и посмотрим, что JavaScript может нам предложить.
Написание веб-приложения
В Вашем HTML Вы можете определить поля ввода от пользователя и установить диапазон их типов, что позволило бы пользователю вводить значение любого из этих типов. В нашей статье мы будем использовать тип date. Используем следующую HTML-разметку
Примечание: мы использовали Bootstrap в качестве стиля.
Контроль после рендеринга
Это то, что у нас есть для макета, а теперь давайте обратимся ко входным данным пользователей. Мы должны найти указанную пользователем строку даты и времени, а также рассчитать по ней возраст.
var dateValue = new Date($( ‘input’ ).val()); // Get the value
// Now comes the stringification. Following code does that.
var date = getMonth(dateValue.getMonth()) + » » + dateValue.getDate() + «, » + dateValue.getFullYear();
В JavaScript методы getDate, getMonth возвращают номер объекта. Вместо использования номера в качестве даты создадим другую функцию, которая возвращает месяц из нашего целого значения.
Примечание: date.getMonth() при возврате значения начинает отсчет от 0.
Взаимодействие с пользователем: alert, prompt, confirm
Материал на этой странице устарел, поэтому скрыт из оглавления сайта.
Более новая информация по этой теме находится на странице https://learn.javascript.ru/alert-prompt-confirm.
В этом разделе мы рассмотрим базовые UI операции: alert , prompt и confirm , которые позволяют работать с данными, полученными от пользователя.
alert
alert выводит на экран окно с сообщением и приостанавливает выполнение скрипта, пока пользователь не нажмёт «ОК».
Окно сообщения, которое выводится, является модальным окном. Слово «модальное» означает, что посетитель не может взаимодействовать со страницей, нажимать другие кнопки и т.п., пока не разберётся с окном. В данном случае – пока не нажмёт на «OK».
prompt
Функция prompt принимает два аргумента:
result = prompt(title, default);
Она выводит модальное окно с заголовком title , полем для ввода текста, заполненным строкой по умолчанию default и кнопками OK/CANCEL.
Пользователь должен либо что-то ввести и нажать OK, либо отменить ввод кликом на CANCEL или нажатием Esc на клавиатуре.
Вызов prompt возвращает то, что ввёл посетитель – строку или специальное значение null , если ввод отменён.
Единственный браузер, который не возвращает null при отмене ввода – это Safari. При отсутствии ввода он возвращает пустую строку. Предположительно, это ошибка в браузере.
Если нам важен этот браузер, то пустую строку нужно обрабатывать точно так же, как и null , т.е. считать отменой ввода.
Как и в случае с alert , окно prompt модальное.
var years = prompt('Сколько вам лет?', 100); alert('Вам ' + years + ' лет!')
Второй параметр может отсутствовать. Однако при этом IE вставит в диалог значение по умолчанию «undefined» .
Запустите этот код в IE, чтобы понять о чём речь:
Поэтому рекомендуется всегда указывать второй аргумент:
confirm
confirm выводит окно с вопросом question с двумя кнопками: OK и CANCEL.
Результатом будет true при нажатии OK и false – при CANCEL( Esc ).
var isAdmin = confirm("Вы - администратор?"); alert( isAdmin );
Особенности встроенных функций
Конкретное место, где выводится модальное окно с вопросом – обычно это центр браузера, и внешний вид окна выбирает браузер. Разработчик не может на это влиять.
С одной стороны – это недостаток, так как нельзя вывести окно в своём, особо красивом, дизайне.
С другой стороны, преимущество этих функций по сравнению с другими, более сложными методами взаимодействия, которые мы изучим в дальнейшем – как раз в том, что они очень просты.
Это самый простой способ вывести сообщение или получить информацию от посетителя. Поэтому их используют в тех случаях, когда простота важна, а всякие «красивости» особой роли не играют.
Резюме
- alert выводит сообщение.
- prompt выводит сообщение и ждёт, пока пользователь введёт текст, а затем возвращает введённое значение или null , если ввод отменён (CANCEL/ Esc ).
- confirm выводит сообщение и ждёт, пока пользователь нажмёт «OK» или «CANCEL» и возвращает true/false .