web-dev-qa-db-ja.com

MomentJs:Typescriptで文字列を日付に変換する方法は?

私は、Ag GirdをAngular 2.に実装しています。しかし、私の入力は文字列です。dateStringの形式は2017-01-19です。

let myDate:Date = moment(dateString).toDate();

しかし、Thu Jan 19 2017 00:00 Indian Standard Timeとして出力されます。私もこのようにしてみました

let myDate:Date = moment(dateString).format("DD/MM/YYYY");

これにより、エラー文字列が日付に割り当てられません。

このように試してみました

let myDate:Date = moment(dateString,"DD/MM/YYYY");

しかし、運はありません。私が欲しいのは、日付としての出力のタイプと19-01-2017の形式です

提案してください

10
Protagonist

これを試して:

let myDate:Date = moment(dateString、 "YYYY-MM-DD")。format( "DD-MM-YYYY");

基本的に、moment()を呼び出すときは、現在の日付の形式を指定する必要があります。not希望する出力形式です。 .format()を呼び出すときに、出力形式を指定する必要があります。

13
Wissam
moment().toDate();

dateオブジェクトを与える

Moment.jsから日付オブジェクトへの変換 から答えを得ました

2
Alx

列定義で 列レンダラーフレームワーク を利用するようにしてください。フィールドdateはJavaScriptの日付である必要があります。これはnew Date("2017.02.28")を介して文字列から生成できます。ここでモーメントを使用する必要はありません。

{
  colId: "date",
  headerName: "Date",
  field: "date",
  cellRendererFramework: GridDateComponent,
}

このコンポーネントは、並べ替えなどのために元のJSDateを保持しながら、dateパイプを利用する方法でフォーマットされた日付を表示します。

import { Component } from '@angular/core';
import { AgRendererComponent } from 'ag-grid-ng2/main';

@Component({
    selector: 'date-cell',
    template: `{{params.value | date:'d MMM'}}`
})
export class GridDateComponent implements AgRendererComponent {
    public params: any;

    agInit(params: any): void {
        this.params = params;
    }
}
0