代码之家  ›  专栏  ›  技术社区  ›  Michael Emerson

将日期和时间合并为一个瞬间对象以与今天进行比较

  •  0
  • Michael Emerson  · 技术社区  · 6 年前

    我目前正在React项目中实现moment来格式化数据库中设置的发送通知的时间表的日期。我的系统有一个仪表板,显示所有计划发出的通知及其各自的日期。数据库当前有两列用于记录计划的日期和时间- schedule_date schedule_time -目前,我使用以下代码在仪表板上显示它们:

    {moment(file.schedule.schedule_date).format('DD/MM/YYYY')}
    {moment(file.schedule.schedule_time, 'HH:mm:ss').format('h:mma')}
    

    计划日期 具有格式 YYYY-MM-DD 计划时间 具有格式 HH:MM:SS (伪)但是,我现在需要能够将此日期与当前日期进行比较,以便确定通知的设置计划是否已过。我使用以下代码获取今天的日期和时间:

    let now = moment();
    

    有没有办法在前端进行比较?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Dyo    6 年前

    您可以通过以下方式设置日期时刻对象的时间:

    var date = '2018-09-12T00:00:00Z';
    var time = '16:00:00';
    
    var momentDate = moment(date);
    var momentTime = moment(time, 'HH:mm:ss');
    
    momentDate = momentDate.set({
      hour: momentTime.get('hour'),
      minute: momentTime.get('minute'),
      second: momentTime.get('second')
    });
    
    console.log(momentDate.format());
    console.log(momentDate.isAfter(moment.now()));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>

    您还可以尝试直接从日期和时间字符串创建iso日期格式,如下所示:

    var fullDate = date + 'T' + time + 'Z';