Angular-HTML5输入类型“ datetime-local”不适用于Date对象

时间:2018-09-06 15:10:58

标签: javascript angular typescript momentjs

我已经做了很多尝试。 首先,我将日期作为Moment.js对象,

 this.meeting.start = event.date.local().toDate();

我还尝试了以下方法:

this.meeting.start = new Date(this.meeting.start.toLocaleString());

我的html:

<input 
  type="datetime-local" 
  class="form-control" 
  value="{{meeting.start}}" 
  [(ngModel)]="meeting.start" />

但UI窗口为空:“-:-dd / mm / yy”

谢谢。

4 个答案:

答案 0 :(得分:2)

这对我有用:

let today = new Date();
this.meeting.start = today.toISOString().split('T')[0]

以html

<input 
  type="date" 
  class="form-control" 
  value="{{meeting.start}}" 
  [(ngModel)]="meeting.start" />

请参见https://angular-rb5vmu.stackblitz.io中的示例(最后一项:输入日期格式)

已编辑!

答案 1 :(得分:0)

尝试一下

const fmt = 'HH:mm DD/MM/YY';
const result = moment.utc(this.meeting.start, fmt).local().format(fmt);

模板:

<input type="datetime-local" [value]="result">

Sample StackBlitz

答案 2 :(得分:0)

基于我在这里获得的帮助,我设法使它与以下变通办法一起工作:

var add = moment(this.meeting.start).add(3, 'hours');
var result = add.toISOString().split('.')[0];
this.meeting.start = result;

答案 3 :(得分:0)

这对我有用,我尝试了上面的所有答案,但都没有奏效..

// Init dates
let today = moment.utc().local().format('YYYY-MM-DDTHH:mm');
let todayMinus7Days = moment.utc().local().subtract(7, 'days').format('YYYY-MM-DDTHH:mm');

console.log(today);
console.log(todayMinus7Days);

浏览器控制台的结果是:

enter image description here

结果是浏览器本身是:

enter image description here