2013-03-14 3 views
46

Мне нужно взять значение даты из jquery datepicker, превратить его в строковый формат «MM/dd/yyyy», чтобы он мог делать правильную запись ajax. Когда страница загружается или при изменении datepicker выполняется вызов jquery ajax.Использование момента.js для преобразования даты в строку «MM/dd/yyyy»

У меня есть этот код:

var sTimestamp = 
moment($("#start_ts").datepicker("getDate")).format("MM/dd/yyyy"); 

Но это не превратить его в "ММ/дд/гггг". Когда я использую скрипач, чтобы проверить, что передается по проводу, это тело:

startTimestamp=03%2FTh%2Fyyyy&endTimestamp=03%2FTh%2Fyyyy&pageSize=50&pageNum=0 

Если я использую сочинять в стельке и изменить тело:

startTimestamp=03/13/2013&endTimestamp=03/14/2013&pageSize=50&pageNum=0 

я получаю правильный ответ , Итак, мой вопрос в том, есть ли способ взять объект даты и отформатировать его до строки «MM/dd/yyyy», используя moment.js? Или что-то не так с тем, как я получаю дату от datepicker?

Btw, я предполагаю, что datepicker.getDate возвращает объект даты, поскольку это то, что мне сообщают документы jQuery.

Спасибо,

ответ

34

Я думаю, вы просто неправильный корпус в строке формата. Согласно документации, это должно работать для вас: MM/DD/YYYY

moment.js documentation

5

Попробуйте это:

var momentObj = $("#start_ts").datepicker("getDate"); 

var yourDate = momentObj.format('L'); 
46
StartDate = moment(StartDate).format('MM-YYYY'); 

... и MySQL формат даты:

StartDate = moment(StartDate).format('YYYY-MM-DD'); 
+1

формат даты MySQL (YYYY-MM-DD) также алфавитно-цифровой sortable, его можно использовать в именах файлов для сортировки файлов, их четкое и удобное для чтения (не путать, как dd/mm и mm/dd), ISO 8601 и в значительной степени единственный нормальный формат. «01/02/2016» просто ... «Что? Откуда вы? Какой формат даты они там используют?» ;) –

Смежные вопросы