首页 > 解决方案 > 基于设置格式的两个日期之间的差异

问题描述

const formatChatDate = (chatDate) => {
    // round to the nearest whole number
    const dt = Moment(chatDate).format('MMMM Do YYYY, h:mm:ss a'); // March 9th 2021, 7:16:16 pm;
   const dtNow = Moment(new Date()).format('MMMM Do YYYY, h:mm:ss a'); // March 9th 2021, 7:16:16 pm;
    const diffDate= Math.round((dt-dtNow)/(1000*60*60*24));
    if(diffDate.diff(dt,'days')<1){
        return dt.format("LT");  
    }else{
        return dt.format("LLL"); 
    }
};

我需要计算两个日期和昨天聊天之间的差异,它看起来像 ll 格式和当前日期 lt 格式

我需要设置 11.59pm 表示 ll 格式和 12pm 表示 lt 格式..chatdate 表示最后一条消息日期,dtnow 表示当前日期

标签: javascriptreactjsreact-nativeexpo

解决方案


为什么不使用时刻diff来计算日期之间的差异?就像是:

const formatChatDate = (chatDate) => {
    const dt = moment(chatDate);
    const dtNow = Moment(new Date());
    
    if(dtNow.diff(dt,'days') < 1){
       return dt.format("LT");  
    } else {
       return dt.format("LLL"); 
    }
};

推荐阅读