Как узнать текущее время из углового материала Date picker? - PullRequest
0 голосов
/ 28 мая 2018

Я использую инструмент выбора даты для углового материала https://material.angular.io/components/select/overview

, но при этом возвращается только дата, а не текущее время: пн 28 мая 2018 00:00:00 GMT + 0530 (IST)

Есть ли способ узнать текущее время и из этого?

Ответы [ 4 ]

0 голосов
/ 28 мая 2018
        For Example currenttime = Mon May 28 2018 00:00:00 GMT+0530 (IST)

    Currenttime is an example if  u using current date means just use new Date()  

    //Sample function calling Method 
            Exacttime(){
            this.functionName = this.diffhours(new(currenttime))
            }

            diffhours(currenttime){
               var diff = new Date(currenttime);
                diff .getHours(); // => 9
                diff .getMinutes(); // =>  30
                diff .getSeconds(); // => 51

}
0 голосов

В настоящее время средство выбора даты материала предоставляет только текущую дату (без текущего времени), но в официальном репо существует открытый вопрос, поэтому мы можем увидеть средство выбора времени в ближайшем будущем.

0 голосов
/ 28 мая 2018

Вы можете использовать ngModelChange , чтобы проанализировать дату перед тем, как установить ее для своей модели, я рекомендую momentJS для простых манипуляций с датой.

в HTML

 <input [ngModel]="date" (ngModelChange)="onDataChange($event)"  matInput [matDatepicker]="picker" placeholder="Choose a date">

В ваших Component.ts

  onDataChange(newdate) {
    const _ = moment();
    const date = moment(newdate).add({hours: _.hour(), minutes:_.minute() , seconds:_.second()})
    this.date = date.toDate();
    console.log({hours: _.hour(), minutes:_.minute() , seconds:_.second()})
  }

вы можете найти полное решение здесь https://stackblitz.com/edit/angular-ecq2lc

0 голосов
/ 28 мая 2018

Угловой материал не предоставляет время, сейчас вам нужно вручную получить время от timeStamp, попробуйте это -

function getTimeFromDate(timestamp) {
  let date = new Date(timestamp * 1000);
  let hours = date.getHours();
  let minutes = date.getMinutes();
  let seconds = date.getSeconds();
  return hours+":"+minutes+":"+seconds
}

let timeStamp = new Date("Mon May 28 2018 00:00:00 GMT+0530 (IST)")
console.log(getTimeFromDate(timeStamp));
...