【问题标题】:Angular 2 + Ionic 2: how to change the date format in controller?Angular 2 + Ionic 2:如何更改控制器中的日期格式?
【发布时间】:2017-06-18 22:43:31
【问题描述】:

我正在从 sqlite 数据库中循环获取日期。格式类似于“2017 年 2 月 1 日星期三 21:54:24 GMT-0200”。但我想将其更改为“dd/MM/yyyy”。

如何在控制器中更改格式?

我的代码示例:

this.issuedService.fetchAll().then(( res ) => {
    var data = [];
    for (let entry  of <Array<any>>res) {                
        console.log( JSON.stringify( entry  ) );
    }            
    //this.items = <Array<any>>res;
}, ( error ) => {
    console.log( "ERROR: ", error.message );
});

2017-02-02 更新

所以,几个小时不睡觉,我终于找到了解决办法。

我可以从 NPM 将 MomentJs 库添加到我的 Ionic v2 项目中。

$ npm install moment --save

结果代码:

import { Component } from '@angular/core';

import { NavController, NavParams } from 'ionic-angular';

import * as moment from 'moment';
import 'moment/locale/pt-br';

import { IssuedService } from '../../providers/issued-service';

@Component( {
    selector: 'page-home',
    templateUrl: 'home.html'
})

export class HomePage {
    items: any[] = [];
    issuedPage = IssuedPage;

    constructor(
        public navCtrl: NavController,
        public navParams: NavParams,
        public issuedService: IssuedService
    ) {
        this.initializeItems();
    }

    ionViewDidLoad() {
        console.log( 'ionViewDidLoad HomePage' );
    }

    initializeItems() {
        this.issuedService.fetchAll().then(( res ) => {
            for ( let entry of <Array<any>>res ) {
                entry.query_dt = moment( entry.picking_dt ).format( 'DD MMMM YYYY' );
                this.items.push(entry);
            }
            console.log( JSON.stringify( this.items  ) );
        }, ( error ) => {
            console.log( "ERROR: ", error.message );
        });
    }
}

Ionic 2 Doc / Adding third party libs

【问题讨论】:

  • 使用momentjs,效果最好!
  • 嗨@AliBaig,谢谢,momentjs 解决了我的问题。
  • 这是另一个很好的答案stackoverflow.com/a/41282812/6294371 关于如何在控制器中格式化日期
  • 嗨@ChenDachao,很好的答案。谢谢!

标签: angularjs sqlite angular ionic2 typescript2.0


【解决方案1】:

试试这个

$scope.date = 'Wed Feb 01 2017 21:54:24 GMT-0200';
  var filterdatetime = $filter('date')( $scope.date,'dd/MM/yyyy' );
  alert(filterdatetime);

【讨论】:

  • Op 正在寻找 Ionic 2.. 这看起来像 angular 1/ionic 1
  • 对不起我的错误。但是 angular 1 元素不支持 angular 2 ? @suraj
  • no.. angular 2 与 angular 1 完全不同
【解决方案2】:

我的项目的解决方案:

添加第三方库

您可以从 NPM 将大多数第三方库添加到您的 V2 项目中。 例如,让我们添加 MomentJs。

 $ npm install moment --save

从这里,我们可以将它导入到我们想要使用它的任何类中。

import {Page} from 'ionic-angular';
import * as moment from 'moment';

export class MyClass {
  constructor(){
    moment("20111031", "YYYYMMDD").fromNow();
  }

}

Ionic Documentation Code

【讨论】:

    【解决方案3】:

    我做了两行:

    import { DatePipe } from '@angular/common';
    
    <ion-label>{{myDate | date: 'yyyy'}}</ion-label>
    

    第一个只是在 ts 文件中的导入,第二个是您放入 html 文件中的。

    【讨论】:

    • 工作就像一个魅力,更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多