使用angular 2将日期从“ yyyy-mm-ddTHH:mm:ss.SSS”格式化为人类可读格式

时间:2018-11-13 16:24:07

标签: angularjs

我具有以下格式的JSON数据,并希望以人类可读的格式显示startDateTime

  var txns = {    
   "payeeAccNum": "12081031991",
   "startDateTime": "2018-11-13T20:47:47.866"
 }

我已按照以下方式进行操作,但始终只将时间显示为 12:00:00 AM 。有人可以帮忙吗?

<span [innerHTML]="(txns.startDateTime | date:'d MMM yyyy h:mm:ss a')"></span>

2 个答案:

答案 0 :(得分:0)

使用日期过滤器,您可以将日期/时间设置为所需的任何格式:

  

“ medium”:相当于en_US语言环境的“ MMM d,y h:mm:ss a”(例如2010年9月3日下午12:05:08)

     

'short':等于en_US语言环境的'M / d / yy h:mm a'(例如9/3/10)   下午12:05)

     

'fullDate':等于en_US语言环境的'EEEE,MMMM d,y'   (例如,2010年9月3日,星期五)

     

'shortDate':在en_US语言环境中相当于'M / d / yy'(例如9/3/10)

     

'mediumTime':对于en_US语言环境,相当于'h:mm:ss a'(例如   下午12:05:08)

     

'shortTime':等于en_US语言环境的'h:mm a'   (例如12:05 PM)

现在您希望您的时间以什么格式显示?

对于中等显示,请使用:

<span [innerHTML]="(txns.startDateTime |  date:'medium')"></span>

最好使用[innerText]代替HTML来显示跨度内容。

要获取类似中等日期而没有秒的内容,请使用'MMM d, y h:mm a'

Dateoffset过滤器:

transform(value: any, format = 'MM/dd/yyyy'): string {
    let formattedDt: string;
    if (value) {
        if (DateUtil.DATE_TIMEZONE_REGEX.test(value)) {
            value = this.removeTimezone(value);
        }
        formattedDt = this.datePipe.transform(new Date(value), format);
    }
    return formattedDt;
}

private removeTimezone(value: any): string {
    const timezoneDashIndex = value.lastIndexOf('-');
    return value.slice(0, timezoneDashIndex);
}

答案 1 :(得分:0)

考虑使用moment.js库进行数据时间转换

访问momentjs.com

这是您的代码的解决方案:

  

var requiredDateFormat = moment(tsnx.startDateTime).format('MM-DD-YYYY')