• js время в секундах UNIXTIME

    Когда вы имеете дело со временем в JavaScript, иногда хочется представить его в виде секундного хеша, как в php. Там количество секунд прошедших с 1 января 1970 года(UnixTime) возвращает функция time(). Возвращает она обычный int. Благодаря этому с этой величиной очень удобно работать: сортировать, сравнивать и т.д.

    В javaScript иногда тоже нужен такой же функционал. К примеру раскидывать данные в массив, а потом сортировать его по времени. unixtime в js возвращает метод getTime объекта Date, но в отличии от php, он возвращает еще и миллисекунды.

    Поэтому все надо разделить на 1000.

    function time(){
    return parseInt(new Date().getTime()/1000)
    }
    alert(time())//1300051970

    Вот и все, авось кому пригодится

  • strtotime в нужном формате

    В php есть замечательная функция работы со временем strtotime. Она преобразует строковое представление даты в UNIXTIME формат(количество секунд, прошедшее с 1-го января 1970-го года). Удобна она прежде всего тем, что в нее можно подавать данные, введенные пользователем в форме, к примеру, дату рождения. На выходе мы получим удобный unixtime, с помощью которого можно проводить различные валидные сортировки по дате.

    Приведу пример:

    echo strtotime('8-12-1986'); // вернет 534366000

    что эквивалентно

    echo mktime(0,0,0,12,8,1986);

    Но что если ваш пользователь пришлет на вход функции такой формат '8 12 1986'. В этом случае 

    echo strtotime('8 12 1986'); // вернет false

    Функции просто не понятно, что здесь день, что здесь месяц, а что год. Как решить данную проблему? Как показать php формат введенной даты? 

  • Используем datepicker из jquery ui

    Более удобный DateTimePicker разработка автора xdan.ru

    JQuery UI - это набор пользовательских интерфейс виджетов, компонентов и эффектов. Datepicker - это небольшой виджет календарик, удобный прежде всего тем, что пользователь может легко выбрать нужную дату, при этом дата запишется в требуемом формате, и не будет требовать стандартизации. 

    Вот так виджет Datepicker выглядит из под коробки в стандартном jQuery UI

    Стандартный Dateicker из jQuery UI

     Все лаконично и просто. Но есть один большой минус. В нем нет редактирования времени. Собственно потому виджет и называется DatePicker, аналогичный виджет со временем должен был бы называться DateTimePicker) К сожалению такого виджета в библиотеке нет. Для простоты Datepicker,TimePicker и dateTimePicker обычно обобщают в одно понятие DatePicker.

    К слову в html5 появились новые элементы ввода, в том числе Date и DateTime Picker'ы. Но мало того, что поддерживаются они не во всех браузерах, так еще и эта самая поддержка оставляет желать лучшего. Приведу пример, как выглядит html5 datepicker в разных браузерах

  • Самый удобный DateTimePicker

    jQuery DateTimePicker pluginКак-то я описывал работу с jQueryUI datetimepicker. Приемлимым этот плагин назвать было сложно, потому как он тянул с собой весь jQueryUI, и еще 10-ок файлов. По функциональности он тоже весьма скуп. Ничего более стоящего, и тогда и сейчас найти не удалось. Поэтому написал свой плагин с преферансом и поэтессами.

    Результатом трудов стал великолепный на мой взгляд плагин на jQuery DateTimePicker

    Почему он лучше, чем стандартный jQuery UI виджет?

    Во первых, потому, что не требует кроме себя и собственно jQuery ничего более. Во вторых в сжатом виде, весит менее 5кб вместе со стилями. Нет других дополнительных файлов с изображениями, только файл стилей и файл js.

    Однако, главным преимуществом, я считаю, наличие отключаемого,  TimePicker'а. Да DatePicker тоже отключаем и это очень удобно.

    То, что дает нам интернет, в этом сегменте виджетов, ужасно. Пикеры из 90-х. Такое ощущение, что их создателям было просто наплевать на внешний вид своего детища. Один из самых удачных, это безусловно jscal, но он настолько сложен и монструозен, что просто прикрутить его к тестовой странице мне не удалось. Да объем кода, ему сопутствующий оставляет желать лучшего.