Как установить defaultDate в локальное время, используя значение UTC из скрытого поля в eonasdan-datetimepicker?

Я заполняю скрытое поле с датой / временем UTC из базы данных. Затем я использую jQuery и библиотеку момента, чтобы преобразовать дату UTC в локальное время и установить дату по умолчанию для eonasdan-datetimepicker. Я также использую событие dp.change для eonasdan-datetimepicker для преобразования дат, выбранных через виджет обратно в UTC, для привязки к базе данных через скрытое поле. Вот мой javascript - это работает, но мне это не нравится.

$(".datepicker").each(function (index) {
    var utcDateTime = moment.utc($("#" + $(this).data("utc-target")).val(), "MM/DD/YYYY h:mm A");
    var localDateTime = moment.utc(utcDateTime).local().format("MM/DD/YYYY h:mm A");
    $(this).find(">:first-child").val(localDateTime);
}).datetimepicker({
    useCurrent: false,
}).on("dp.change", function (e) {
    $("#" + $(this).data("utc-target")).val(moment.utc(e.date).format("MM/DD/YYYY h:mm A"));
});

HTML:

<label for="PublishedField">Date/Time Published</label>
<div class="input-group date datepicker" data-utc-target="PublishedUtcField">
    <input name="PublishedField" type="text" id="PublishedField" class="form-control" />
    <span class="input-group-addon"><span class="fa fa-calendar">&nbsp;</span></span>
</div>
<input type="hidden" name="PublishedUtcField" id="PublishedUtcField" value="4/10/2015 5:16:00 PM" />

Хотя это работает, я не поклонник каждого цикла, чтобы установить начальное значение datetimepicker. Мне кажется, что было бы проще установить его с помощью свойства defaultDate, но я не могу установить это свойство с помощью анонимной функции. Я думаю, что событие dp.initialize или dp.setup было бы хорошим решением, но, насколько я могу судить, библиотека не поддерживает что-то подобное. Это также можно сделать с использованием каких-либо функций-заполнителей, но я не могу найти подобных сценариев в документах или в GitHub.

Кто-нибудь знает, как лучше это сделать? Поддерживается ли такой сценарий каким-то образом, я просто не вижу или не знаю? Мне что-то не хватает?

javascript,jquery,datetime,momentjs,eonasdan-datetimepicker,

1

Ответов: 0

Как установить defaultDate в локальное время, используя значение UTC из скрытого поля в eonasdan-datetimepicker?

Я заполняю скрытое поле с датой / временем UTC из базы данных. Затем я использую jQuery и библиотеку момента, чтобы преобразовать дату UTC в локальное время и установить дату по умолчанию для eonasdan-datetimepicker. Я также использую событие dp.change для eonasdan-datetimepicker для преобразования дат, выбранных через виджет обратно в UTC, для привязки к базе данных через скрытое поле. Вот мой javascript - это работает, но мне это не нравится.

$(".datepicker").each(function (index) {
    var utcDateTime = moment.utc($("#" + $(this).data("utc-target")).val(), "MM/DD/YYYY h:mm A");
    var localDateTime = moment.utc(utcDateTime).local().format("MM/DD/YYYY h:mm A");
    $(this).find(">:first-child").val(localDateTime);
}).datetimepicker({
    useCurrent: false,
}).on("dp.change", function (e) {
    $("#" + $(this).data("utc-target")).val(moment.utc(e.date).format("MM/DD/YYYY h:mm A"));
});

HTML:

<label for="PublishedField">Date/Time Published</label>
<div class="input-group date datepicker" data-utc-target="PublishedUtcField">
    <input name="PublishedField" type="text" id="PublishedField" class="form-control" />
    <span class="input-group-addon"><span class="fa fa-calendar">&nbsp;</span></span>
</div>
<input type="hidden" name="PublishedUtcField" id="PublishedUtcField" value="4/10/2015 5:16:00 PM" />

Хотя это работает, я не поклонник каждого цикла, чтобы установить начальное значение datetimepicker. Мне кажется, что было бы проще установить его с помощью свойства defaultDate, но я не могу установить это свойство с помощью анонимной функции. Я думаю, что событие dp.initialize или dp.setup было бы хорошим решением, но, насколько я могу судить, библиотека не поддерживает что-то подобное. Это также можно сделать с использованием каких-либо функций-заполнителей, но я не могу найти подобных сценариев в документах или в GitHub.

Кто-нибудь знает, как лучше это сделать? Поддерживается ли такой сценарий каким-то образом, я просто не вижу или не знаю? Мне что-то не хватает?

01JavaScript, JQuery, дата и время, momentjs, eonasdan-DateTimePicker,
Похожие вопросы