猿问

有没有办法用小时替换今天的日期?

我正在构建这个从数据库获取文章的应用程序,其中 1 个字段是现在格式为“2019-06-13T18:03:58.000Z”的日期,基本上我需要做的是检查这是否是今天的日期只返回小时和上午/下午所以对于这个例子是今天所以返回下午 18:03,如果日期与昨天相同,则返回“昨天”,如果日期不是这些,则返回“月,日”


我试过创建 Date 对象然后比较,但没有用


我有这个 html 代码:


<div class='date-container'>

        {{renderDate(data.created_at)}}

    </div>

并在 component.ts 文件中:


public renderDate(date) {

    const fecha = new Date(date);

    const today = new Date();

    const yesterday = today.getDate()-1;

    let fecha_r = '';


    if(fecha.getTime() == today.getTime()){

      fecha_r = 'today';

    }


    return fecha_r;

  }

我需要在该函数中返回转换后的日期,以便我的 html 代码打印正确格式的日期,我该怎么做?


智慧大石
浏览 180回答 3
3回答

catspeake

您可以在组件中使用有角度的 DatePipe,并根据日期比较的结果返回转换后的日期格式。成分:constructor(datePipe: DatePipe) {}date = new Date();//returns formatted date based on date comparison&nbsp;&nbsp;formatDay(date): string{&nbsp; let today = new Date()&nbsp; let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);&nbsp; &nbsp;&nbsp;&nbsp; if(this.isSameDate(today, date))&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; return this.datePipe.transform(date,'hh:mm a');&nbsp; else if (this.isSameDate(yesterday, date))&nbsp; &nbsp; return 'Yesterday'&nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; return this.datePipe.transform(date,'MMMM d');&nbsp;}//checks if two dates are identicalisSameDate(d1, d2){&nbsp; &nbsp;return d1.getDate() === d2.getDate() && d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();}模板:{{formatDay(date)}}你只需要import { DatePipe } from '@angular/common';在你的组件中添加DatePipe你的模块:(app.module.ts 如果你没有这个组件自己的模块)&nbsp;providers: [DatePipe]这是它的Stackblitz
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答