Преобразование времени с вечера до утра в компоненте Angular 6 - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь создать форму в угловых, в которой у нас есть 2 поля ввода StartTime и EndTimeStartTime, если мы вводим дату и время, и они должны автоматически обновляться в Endtime с «+» 1 часом по времени.

Работает нормально, но когда нужно конвертировать из утра в часэто не конвертируется.Значение времени в this.endTimeValue во время отладки в порядке, но при привязке оно отображает неверное значение в представлении (EndTime).

HTML-файл:

<form [formGroup]="myGroup" (ngSubmit)="submit(myGroup.value)">
    <div class="row row-time">
        <div class="col-sm-5">
            <label for="StartTime">Start Time</label>
            <input type="datetime-local"  name="StartTime" class="form-control" formControlName="StartTime">
        </div>

        <div class="col-sm-5 col-sm-offset-2">
            <label for="EndTime">End Time</label>
            <input type="datetime-local"  name="endTime1" class="form-control" formControlName="EndTime" readonly>
        </div>
    </div>

    <div class="row">
        <button type="submit" class="btn">
            Submit Query
        </button>
    </div>
</form>

Файл компонента (ts):

myGroup: FormGroup;
startTimeValue: any;
endTimeValue : string ;

constructor(private formbuilder:FormBuilder, 
              private datePipe: DatePipe) { }

ngOnInit() {
  this.myGroup = this.formbuilder.group({
    TableName:['', Validators.required],
    CorrelationId:['', Validators.required],
    StartTime:[null, Validators.required],
    EndTime:[null, Validators.required],
    ClientName:['', Validators.required]
  });
}


submit(form){
  this.startTimeValue = form.StartTime;
  var time = this.startTimeValue;

  if(time !== null)
  {
    debugger;
    var x = new Date(time);
    x.setHours(x.getHours() + 1);
    this.endTimeValue = x.LocaleString();
    debugger;
    this.myGroup.patchValue({
      EndTime: this.datePipe.transform(this.endTimeValue,"yyyy-MM-ddThh:mm",'+0530')
    })
  }
}

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете взглянуть на moment.js

Вот ссылка для moment.js https://momentjs.com/

Вам необходимо установить ее с помощью команды: npm install moment --save

И затем вы можете начать преобразование ввода, введенного пользователем, например:

var a = moment('2018-11-21');
a.format('LT');   // 8:59 AM
a.format('LTS');  // 8:59:09 AM 
...