За последние 24 часа нас посетили 16976 программистов и 1627 роботов. Сейчас ищет 1701 программист ...

Вывод даты в формате YYYY-MM-DD

Тема в разделе "JavaScript и AJAX", создана пользователем Валерий Е, 28 янв 2018.

  1. Валерий Е

    Валерий Е Активный пользователь

    С нами с:
    26 авг 2015
    Сообщения:
    67
    Симпатии:
    0
    Здравствуйте!
    JS совсем не знаю. Требуется вывести в браузер дату в формате DD-MM-YYYY.
    В базу данных значение попадает функцией PHP time() в виде числа 1511188197.
    Затем это значение выводится магическим способом при помощи JS в браузер таким методом:
    Код (Javascript):
    1. structureItem: function (element) {
    2.         console.log('Obj!', element);
    3.        var date = new Date(element.date);
    4.        var formatDate = date.getFullYear() +"-"+date.getMonth()+1 +"-"+date.getDate();
    5.        var $itemAuthor = $('<footer />', {
    6.             class: 'item__author',
    7.             text: 'Автор: ' + element.author + '. ' + 'Дата: ' + formatDate
    8.         });
    9.         $itemAuthor.appendTo($container);
    10.          return $container;
    11.     }
    Еще имеется код:
    Код (Javascript):
    1.  $.ajax({
    2. ...
    3. for (var i = 0; i < data.length; i++){
    4.                     //Получаем контейнер вместе с элементами
    5.                     var htmlCodeItem = self.structureItem(data[i]);
    6.                     //Добавляем новость на страницу
    7.                     $(self.selectorContainerForContent).append(htmlCodeItem);
    8.                     self.startData++;
    9.                 }
    10. ...
    В браузере отображается результат: Автор: Gleb. Дата: 1970-01-18
    При любых других значениях в базе данных (например, 1497291468, или 1487573783) все равно выводится 1970-01-18.
    В Интернете нашел, что
    "Класс JS Date принимает дату в формате 2017-12-20 (ГОД-МЕСЯЦ-ДЕНЬ), он не умеет работать с датой вида 1511169520."
    Это верно?
    Неужели невозможно средствами JS вернуть дату в формате (ГОД-МЕСЯЦ-ДЕНЬ) из значения в базе данных в формате, заносимом функцией PHP time()?
     
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    Код (Javascript):
    1. var date = new Date();
    2. date.setTime(1511188197 * 1000); // js нужно время в миллисекундах
    3. var month = date.getMonth()+1;
    4. var formatDate = date.getFullYear()+"-"+month+"-"+date.getDate();
     
    #2 rewuxiin, 28 янв 2018
    Последнее редактирование: 28 янв 2018
    Валерий Е нравится это.
  3. Валерий Е

    Валерий Е Активный пользователь

    С нами с:
    26 авг 2015
    Сообщения:
    67
    Симпатии:
    0
    @rewuxiin, все равно выводит 1970-01-18. А при этом значении 1511188197 должно вывести 2017-06-30
     
  4. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    ты либо невнимательно скопировал пример, либо у тебя пустая переменная, которая должна хранить дату
     
  5. Валерий Е

    Валерий Е Активный пользователь

    С нами с:
    26 авг 2015
    Сообщения:
    67
    Симпатии:
    0
    скопировал отредактированный код. Вывело 2017-11-20. А с помощью PHP должно вывести 2017-06-30:
    PHP:
    1. /*Преобразование формата даты*/
    2.     protected function formatDate($time)
    3.     {
    4.         return date("Y-m-d H:i:s", $time);
    5.     }
     
  6. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    https://www.epochconverter.com/
     
    Валерий Е нравится это.
  7. Валерий Е

    Валерий Е Активный пользователь

    С нами с:
    26 авг 2015
    Сообщения:
    67
    Симпатии:
    0
    Все правильно, это я ступил :eek:
    rewuxiin, спасибо большое:)