为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

智慧大石 2021-06-30 14:04:30
我正在构建这个从数据库获取文章的应用程序,其中 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 代码打印正确格式的日期,我该怎么做?
查看完整描述

3 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

您可以在组件中使用有角度的 DatePipe,并根据日期比较的结果返回转换后的日期格式。


成分:


constructor(datePipe: DatePipe) {}


date = new Date();


//returns formatted date based on date comparison  

formatDay(date): string{

  let today = new Date()

  let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);

    

  if(this.isSameDate(today, date))        

    return this.datePipe.transform(date,'hh:mm a');

  else if (this.isSameDate(yesterday, date))

    return 'Yesterday'

  else                                       

    return this.datePipe.transform(date,'MMMM d');

 }

//checks if two dates are identical

isSameDate(d1, d2){

   return d1.getDate() === d2.getDate() && d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();

}

模板:


{{formatDay(date)}}

你只需要import { DatePipe } from '@angular/common';在你的组件中添加DatePipe你的模块:(app.module.ts 如果你没有这个组件自己的模块)


 providers: [DatePipe]

这是它的Stackblitz


查看完整回答
反对 回复 2021-07-01
  • 3 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信