【问题标题】:angular2-date-picker - only current date-time is displayedangular2-date-picker - 仅显示当前日期时间
【发布时间】:2019-06-13 15:33:07
【问题描述】:

我在我的 Angular 项目中使用 angular2-date-picker 插件,我想显示当前时间 - 5 分钟,所以我在我的 component.ts 文件中编写了 modifyDate()

component.ts

      modifyDate() {
      let modifiedDate=new Date();
      modifiedDate.setMinutes(modifiedDate.getMinutes()-5);
      console.log("modified: "+modifiedDate);
      return modifiedDate;
     }


     //datetime picker
     startDate: Date =this.modifyDate();
     settings = {
     bigBanner: true,
     timePicker: true,
     format: 'dd-MM-yyyy hh:mm a',
     defaultOpen: false,
     closeOnSelect:false
};

component.html 文件:

    <angular2-date-picker class="form-control" id="datetimepicker" (onDateSelect)="onDateSelect($event)"  name="datetime" [(ngModel)]="startDate" [settings]="settings"></angular2-date-picker>

构建上述代码后,在我的 DOM 中,我得到下一行:

如您所见,在标记中,ng-reflect-model 分配了正确的数据,但在下面,在元素中,无论如何我都会得到当前日期时间,因此,在我的应用程序中显示的是当前时间。您能提出任何解决方案吗?

【问题讨论】:

    标签: html css angular typescript datetime


    【解决方案1】:

    无法复制您面临的问题。也许缺少一些东西来使它工作......

    相关HTML

    <angular2-date-picker [(ngModel)]="date" [settings]="settings" name="angular-calendar" (onDateSelect)="onDateSelect($event)"
     ngDefaultControl></angular2-date-picker>
    <br/>
        <p>
            Time from selection: <mark> {{date | date:'EE, MMM d, y, H:mm:ss zzzz' }}</mark>
        </p>
        <p>
            minus 5 minutes: <mark>{{newVar}}</mark>
        </p>
    

    相关TS

    import { Component } from '@angular/core';
    
    @Component({
      selector: 'my-app',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
      name = 'Angular 6';
      date = new Date();
      newVar: string = '';
      datePulled:boolean=false;
      settings = {
        bigBanner: true,
        timePicker: true,
        format: 'dd-MM-yyyy',
        defaultOpen: true
      }
      constructor() {
        /* Update #2 */
        if(!this.datePulled){
          let someVar = new Date(this.date);
          someVar.setMinutes(someVar.getMinutes() - 5);
          this.date = someVar;
          this.datePulled = true;
        }
      }
      onDateSelect(evt) {
        if(!this.datePulled){
          let someVar = new Date(this.date);
          someVar.setMinutes(someVar.getMinutes() - 5);
          /* Update #1 */
          this.date = someVar;
          this.newVar = someVar.toString();
          console.log(evt, ' & date:', this.newVar);
        this.datePulled = true;
        }
      }
    }
    

    完成working stackblitz here

    更新#1:根据请求者的评论,原来选择的日期被拉回5分钟

    更新#2:根据请求者的评论,页面加载的日期也被拉回了 5 分钟

    更新 #3:根据请求者的评论,时间选择器现在设置为 true;

    【讨论】:

    • 是否可以在日期旁边的标签中显示负五分钟的时间?
    • @T.S,是的,可能并更新了答案以将原始日期拉回 5 分钟......还附上截图
    • 我可以看到它仅在选择日期时才有效,我想在设置中有 timePicker:true 时在日历框中显示当前日期时间五分钟,所以当用户输入时,他会查看当前日期时间 - 五分钟。对不起,如果我的解释不是很清楚
    • 这种需求的原因是什么?用户不会检查检查元素...一旦他们做出选择,我们将得到 5 分钟的调整
    • 在我的项目中,我需要按日期过滤数据。我有两个日历,用户应该从第一个日历中选择开始日期,从第二个日历中选择结束日期,在结束日期日历中我想显示当前日期和时间,而在开始日期日历中我想要显示日期和时间 - 5 分钟。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    相关资源
    最近更新 更多