Я использую календарь ion2 для создания multidatepicker. Здесь я использую эмиттер событий onSelect.
onSelect($event) {
console.info("onSelect event called");
console.info($event);
};
Здесь, когда я печатаю '$ event', вывод консоли выглядит так:
Как извлечь только дату из объекта этого момента в формате «ДД-ММММ-ГГГГ»?
Ниже один лайнер даст вам желаемый результат:
let formattedDate = moment($event[0].Moment._d).format('DD-MMMM-YYYY');
Итак, ваша функция станет
onSelect($event) {
let formattedDate = moment($event[0].Moment._d).format('DD-MMMM-YYYY');
console.info("onSelect event called");
console.info($event);
};
Примечание: Поскольку я не могу отладить ваш код, пожалуйста, сначала проверьте, указывает ли $event[0].Moment._d
выделенную дату (_d: среда, 16 мая ........) в вашем вопросе.
@ChaitraR только что обновил мой ответ. Он будет работать и печатать полное название месяца. Проверить это.
Я получаю эту ошибку: TypeError: невозможно прочитать свойство _d из undefined
@ChaitraR обновил ответ. Проверить с $event[0].Moment._d
. Он должен работать.
Теперь я получил эту ошибку: TypeError: не удается прочитать свойство «Момент» неопределенного значения.
Позвольте мне попробовать $ event [0] .Moment [0] ._ d
@ChaitraR можете ли вы поделиться значением $event
в формате JSON?
Выглядит так, как указано выше. В самом вопросе я дал формат json.
@ChaitraR, это скриншот. Не могу отладить данные скриншота. Предоставьте данные, чтобы я мог запустить их локально и решить вашу проблему.
@ChaitraR, если вы не знаете, как копировать данные, проверьте этот вопрос: stackoverflow.com/a/25140576/631803
Я получаю только эту строку: «2018-05-09T18: 30: 00.000Z»
Момент {_isAMomentObject: true, _i: 1525890600000, _isUTC: false, _pf: {…}, _locale: Locale,…} _d: 10 мая 2018 г. 00:00:00 GMT + 0530 (стандартное время Индии) {} _i: 1525890600000 _isAMomentObject: true _isUTC: false _isValid: true _locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: «Недопустимая дата», порядковый номер: ƒ, _dayOfMonthOrdinalParse: / \ d {1,2} (th | st | | nd | rd) /,…} _pf: {empty: false, unusedTokens: Array (0), unusedInput: Array (0), overflow: -2, charsLeftOver: 0,…} прото: Object
Не знаю, как я это понимаю. Когда я попытался использовать копию (temp1), я получил это. Итак, я скопировал объект console.info (temp1) и вставил сюда.
@ChaitraR вставьте сюда свои данные JSON и поделитесь ссылкой: myjson.com
@ChaitraR расскажи мне об этой строчке? Как вы получаете это значение «2018-05-09T18: 30: 00.000Z»?
Момент {_isAMomentObject: true, _i: 1525890600000, _isUTC: false, _pf: {…}, _locale: Locale,…} _d: 10 мая 2018 г. 00:00:00 GMT + 0530 (стандартное время Индии) {} _i: 1525890600000 _isAMomentObject: true _isUTC: false _isValid: true _locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: «Недопустимая дата», порядковый номер: ƒ, _dayOfMonthOrdinalParse: / \ d {1,2} (th | st | | nd | rd) /,…} _pf: {empty: false, unusedTokens: Array (0), unusedInput: Array (0), overflow: -2, charsLeftOver: 0,…} прото: Object
Я нашел решение. Теперь я могу распечатать извлеченную дату в консоли. onSelect ($ event) {console.info ("событие onSelect вызвано"); console.info (JSON.stringify ($ event.format ('ДД-ММММ-ГГГГ'))); };
В вашем случае просто используйте moment($event[0]).format('DD-MMMM-YYYY')
console.info(moment().format('DD-MMMM-YYYY'))
<script src = "https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.js"></script>
это обесценивается
@Hunt, что устарело?
Привет, VicJordan, спасибо за ответ. Формат ДД-ММММ-ГГГГ предназначен для отображения полного названия месяца. Например: 28 августа 2014 г.