2015-07-11 3 views
2

Моя задача - использовать дату, чтобы выбрать дату в предписанном формате, например (ММ-ДД-ГГГГ), и передать ее на сервер в формате ISO.Преобразование даты датпинга в формат ISO с помощью момента. Js

Пока он тестирует выход, дата, отформатированная по ISO, на один день отстает.

Например

Если я выбираю

07-13-2015 

Моего Выходной формат ISO является

ISO format is :2015-07-12T18:30:00.000Z 

Здесь вы можете увидеть дата 13, но дата выхода 12

I из Индии. Я пробовал с зоной и utcOffset, не получал никаких результатов. Как я установить его прямо

Вот в JSFIDDLE

расслоение плотной код

$('#datetimepicker1').on("dp.change",function(e){ 
     var selectedDate = $('#datetimepicker1').find("input").val(); 
     selectedDate = moment(selectedDate,"MM-DD-YYYY"); 
     $(".temp").text(moment(selectedDate).toISOString()); 
    }); 

У меня есть скрытое поле, значение которого будет обновляться на изменения и которые будут обрабатываться на сервере , Никаких проблем.

+0

У вас проблема? – HardikT

ответ

2
$('#datetimepicker1').on("dp.change",function(e){ 
     var selectedDate = $('#datetimepicker1').find("input").val(); 
     selectedDate = moment(selectedDate,"MM-DD-YYYY"); 
     $(".temp").text(selectedDate.toISOString()); 
    }); 

Ваш selectedDate - это уже мгновенный объект, поэтому вам не нужно его возвращать в другой момент.

Пример:

var test = '07-13-2015' 
var mtest = moment(test,"MM-DD-YYYY") 
mtest.toISOString() 
"2015-07-13T06:00:00.000Z" 
+0

Вы можете определить разницу между кодом и кодом. И дата с datepicker не является моментом объекта. Он показывал неверную дату. Я сделал jsfiddle. Любой мой вопрос, если выбран 13, строка ISO говорит 12 ... пожалуйста, загляните в мой jsfiddle. –

+0

После игры с вашим JSFiddler и повторного чтения вашего вопроса, я думаю, вы можете столкнуться с проблемой изменения часового пояса. Я думаю, что вы видите изменение даты из-за того, что Индия имеет разницу во времени между UTC. Причина, по которой я думаю, что я не могу дублировать вашу проблему (локально или в JSFiddler). –

+0

Мой комментарий о selectDate, уже являющийся моментом, относится к третьей строке: это превращает selectedDate в момент => selectedDate = moment (selectedDate, "MM-DD-YYYY"); Итак, на четвертой строке вы помещаете объект объекта в новый момент object => $ (". Temp"). Text (moment (selectedDate) .toISOString()); –

0

Вы могли бы попробовать преобразовать формат даты в формате UTC сразу.

selectedDate = moment(selectedDate).utc('MM-DD-YYYY') 
Смежные вопросы