Как изменить формат даты премьеры фильма?

Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#1
Здраствуйте

Как можно сменить формат даты из 2008-07-15 в 15 Июля 2008 ?

Спасибо
 

App

Думает, что помогает
Регистрация
26 Дек 2017
Сообщения
379
#2
Здраствуйте

Как можно сменить формат даты из 2008-07-15 в 15 Июля 2008 ?

Спасибо
в файле /lib/CP_structure.js изменить функцию toDate.

date.png

JavaScript:
function toDate(days) {
    var d = (days)
        ? new Date((days - 719527) * 1000 * 60 * 60 * 24)
            .toJSON().substr(0, 10)
        : '';
    var monthNames = [
        "Января", "Февраля", "Марта",
        "Апреля", "Мая", "Июня", "Июля",
        "Августа", "Сентября", "Октября",
        "Ноября", "Декабря"
    ];
    if (d) {
        return d[8] + d[9] + ' ' +
            monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +
            d[0] + d[1] + d[2] + d[3];
    } else {
        return '';
    }
}
 
Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#4
Здраствуйте

А как сделать то же самое для страницы "content".. новости и т.д... там все еще показывается 2008-07-15 вместо 15 Июля 2008

Спасибо
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
2,168
#7
Да я пробовал, не работает, даёт ошибку.. 502
Значит создайте новую функцию toDate2, а не меняйте существующую toDate.

И в объекте content добавьте publish2.
"publish2" : toDate2(content.content_publish),

Потом в шаблоне category.ejs измените publish на publish2.
 
Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#8
Пробовал и так, тоже не работает :(

JavaScript:
content = {

            "id"          : content.id,

            "title"       : content.content_title,

            "description" : CP_text.formatting(content.content_description),

            "image"       : content.content_image || options.content_image || config.default.image || '',

            "tags"        : tags.join(', '),

            "publish"     : toDate(content.content_publish),

            "publish2"   : toDate2(content.content_publish),

            "movies"      : (movies.length && movies[0])

                ? movies.map(function(item) {

                    return parseInt(item);

                })

                : [],

            "url"         : config.protocol + options.domain + '/' + modules.content.data.url + '/' + content.content_url

        };
и
JavaScript:
function toDate2(days) {

var d = (days)

? new Date((days - 719527) * 1000 * 60 * 60 * 24)

.toJSON().substr(0, 10)

: '';

var monthNames = [

"Января", "Февраля", "Марта",

"Апреля", "Мая", "Июня", "Июля",

"Августа", "Сентября", "Октября",

"Ноября", "Декабря"

];

if (d) {

return d[8] + d[9] + ' ' +

monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +

d[0] + d[1] + d[2] + d[3];

} else {

return '';

}

}
и изменил в index.ejs (где я поставил контент) и category.ejs "publish" на "publish2"...

Что я делаю не так? Плиз помогите
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
2,168
#9
Что выводится в publish2? toDate2 под toDate поставили?
 
Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#10
Да поставил toDate2 под последний toDate... вроде должно выводится функция toDate2.. которая выводит дату в виде 12 Апреля 2018..
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
2,168
#12
Да поставил toDate2 под последний toDate... вроде должно выводится функция toDate2.. которая выводит дату в виде 12 Апреля 2018..
Что не работает? Что выводится, пустота?

Попробуйте вручную там что-то написать "publish2" : "2018-10-04", и вывести.
 
Енот
Новичек
Регистрация
5 Окт 2018
Сообщения
146
#13
в файле /lib/CP_structure.js изменить функцию toDate.

Посмотреть вложение 348

JavaScript:
function toDate(days) {
    var d = (days)
        ? new Date((days - 719527) * 1000 * 60 * 60 * 24)
            .toJSON().substr(0, 10)
        : '';
    var monthNames = [
        "Января", "Февраля", "Марта",
        "Апреля", "Мая", "Июня", "Июля",
        "Августа", "Сентября", "Октября",
        "Ноября", "Декабря"
    ];
    if (d) {
        return d[8] + d[9] + ' ' +
            monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +
            d[0] + d[1] + d[2] + d[3];
    } else {
        return '';
    }
}
Сделал все как тут указано, в сериалах не поменялось, на главной странице

s.png
 
Думает, что помогает
Регистрация
15 Дек 2017
Сообщения
2,168
#14
Сделал все как тут указано, в сериалах не поменялось, на главной странице
Дата у сериалов в /modules/CP_episode.js в переменной serial_base.premiere = premiere;
Нужно создавать функцию toDate2 и выводить дату через нее serial_base.premiere = toDate2(premiere);
 
Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#15
Поставил в
Код:
/modules/CP_episode.js
Код:
function toDate2(days) {
var d = (days)
? new Date((days - 719527) * 1000 * 60 * 60 * 24)
.toJSON().substr(0, 10)
: '';
var monthNames = [
"Января", "Февраля", "Марта",
"Апреля", "Мая", "Июня", "Июля",
"Августа", "Сентября", "Октября",
"Ноября", "Декабря"
];
if (d) {
return d[8] + d[9] + ' ' +
monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +
d[0] + d[1] + d[2] + d[3];
} else {
return '';
}
}
+

Код:
serial_base.premiere = toDate2(premiere);
Выдает ошибку 520 через раз + когда страница работает блок с новыми сериями не появляется...
 

App

Думает, что помогает
Регистрация
26 Дек 2017
Сообщения
379
#16
Да поставил toDate2 под последний toDate... вроде должно выводится функция toDate2.. которая выводит дату в виде 12 Апреля 2018..
Выдает ошибку 520 через раз + когда страница работает блок с новыми сериями не появляется...
да, там передается в параметре не число дней days, а уже готовая дата d, потому toDate2 должна выглядеть так:
JavaScript:
function toDate2(d) {
    var monthNames = [
        "Января", "Февраля", "Марта",
        "Апреля", "Мая", "Июня", "Июля",
        "Августа", "Сентября", "Октября",
        "Ноября", "Декабря"
    ];
    if (d) {
        return d[8] + d[9] + ' ' +
            monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +
            d[0] + d[1] + d[2] + d[3];
    } else {
        return '';
    }
}
 
Енот
Новичек
Регистрация
8 Сен 2018
Сообщения
188
#17
да, там передается в параметре не число дней days, а уже готовая дата d, потому toDate2 должна выглядеть так:
JavaScript:
function toDate2(d) {
    var monthNames = [
        "Января", "Февраля", "Марта",
        "Апреля", "Мая", "Июня", "Июля",
        "Августа", "Сентября", "Октября",
        "Ноября", "Декабря"
    ];
    if (d) {
        return d[8] + d[9] + ' ' +
            monthNames[parseInt(d[5] + d[6]) - 1] + ' ' +
            d[0] + d[1] + d[2] + d[3];
    } else {
        return '';
    }
}
да, так работает спасибо.

Насчет того же вопроса но для "content" (новости),

поставил тот же код в
Код:
CP_structure.js
под последней функцией "toDate(days)"

+

добавил
Код:
"publish2"    : toDate2(content.content_publish),
и уже на странице новостей
Код:
<%- content.publish2 %>
выдает
Код:
nan undefined undefinedundefinedundefinedundefined
вместо даты..