Как получить выбранную дату из метода onic (2) календаря ionic-2 - PullRequest
0 голосов
/ 25 июня 2018

Я использую ion2-календарь.

это мой HTML:

 <ion-calendar [(ngModel)]="date"
              (onChange)="onChange($event)"
              [type]="type"
              [format]="'YYYY-MM-DD'">
</ion-calendar>

и это обмен в тс:

onChange($event) {

      console.log("onchange event called");
      console.log(moment().format('DD-MM-YYYY'));  
    }

Это моя консоль:

onSelect event called
25-06-2018

Но я всегда получаю текущий месяц и год, независимо от того, какую дату я выберу. Меняется только значение даты. Показывает текущий месяц и год в консоли для всех дат. Может кто-нибудь сказать мне, как получить выбранную дату в формате dd-mm-yy из объекта $ event.

Edit- Это то, что я получаю за console.log($event)

enter image description here

Moment {_isAMomentObject: true, _i: 1530297000000, _isUTC: false, _pf: {…}, _locale: Locale, …}
_d
:
Sat Jun 30 2018 00:00:00 GMT+0530 (India Standard Time) {}
_i
:
1530297000000
_isAMomentObject
:
true
_isUTC
:
false
_isValid
:
true
_locale
:
Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, …}
_pf
:
{empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -2, charsLeftOver: 0, …}
__proto__
:
Object

Показывает правильную дату клика. Было бы замечательно, если бы кто-нибудь сказал мне, как извлечь из этого дату.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

$event из OnChange() является моментным объектом.

вы можете отформатировать так: $event.format('DD-MM-YYYY')

0 голосов
/ 25 июня 2018

moment() оператор всегда генерирует текущее время как new Date().

Вы должны использовать оператор как moment("1995-12-25") или другие различные операторы.

ПодробнееПожалуйста, взгляните на это moment.js документы


обновление

Сначала сказать заключение,

.html (ничего не изменилось)

<ion-content padding>
  <ion-calendar [(ngModel)]="date"
  (onChange)="onChange($event)"
  [type]="type"
  [format]="'YYYY-MM-DD'">
</ion-calendar>

.ts

onChange(event) {
  console.log(event.format('DD-MM-YYYY')); // For actual usage.
  console.log(moment(event).format('DD-MM-YYYY')); // the statement you might think about
}

приведенный выше код дает вам то, что вы хотите.

Я хочу сказать, что вы не должны использовать moment(), а moment(event).Потому что moment() возвращает экземпляр момента , который имеет текущее время , в то время как moment(event) возвращает экземпляр момента , который имеет время event переноса.

...