微信小程序-将时间转换成几秒前 几分钟前 几小时前 几天前等时间格式

描述:

显示消息时间为 几天前 几小时前 几分钟前;同时一年以上的日期直接显示YYY:MM:DD形式

效果:

方法实现:

可以在utils目录下建一个存放公共方法的文件,将getDateDiff方法放在此处,文件末尾处抛出即可。

module.exports = {
  getDateDiff: getDateDiff
}
function getDateDiff(dateTime) {
  let dateTimeStamp = new Date(dateTime).getTime();
  let result = '';
  let minute = 1000 * 60;
  let hour = minute * 60;
  let day = hour * 24;
  let halfamonth = day * 15;
  let month = day * 30;
  let year = day * 365;
  let now = new Date().getTime();
  let diffValue = now - dateTimeStamp;
  if (diffValue < 0) {
    return;
  }
  let monthEnd = diffValue / month;
  let weekEnd = diffValue / (7 * day);
  let dayEnd = diffValue / day;
  let hourEnd = diffValue / hour;
  let minEnd = diffValue / minute;
  let yearEnd = diffValue / year;
  if
### 微信小程序中的时间处理方法 在微信小程序开发过程中,时间处理是一个常见的需求。以下是几种常用的时间处理方法及其具体实现方式: #### 1. 获取当时间 通过 `Date` 对象可以轻松获取到当时间并进行格式化操作。 ```javascript function getCurrentTime() { const date = new Date(); const year = date.getFullYear(); // 年份 const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份 (注意:getMonth 返回的是从 0 开始的索引) const day = String(date.getDate()).padStart(2, '0'); // 日 const hours = String(date.getHours()).padStart(2, '0'); // 小时 const minutes = String(date.getMinutes()).padStart(2, '0'); // 分钟 const seconds = String(date.getSeconds()).padStart(2, '0'); // 秒数 return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; } ``` 此函数返回一个标准格式化的日期字符串[^2]。 --- #### 2. 定时器功能 定时器可以通过 `setInterval` 和 `setTimeout` 来实现周期性和延迟性的逻辑执行。 ##### 使用 `setTimeout` 用于延时一段时间后再执行某段代码。 ```javascript wx.showLoading({ title: '加载中...' }); setTimeout(() => { wx.hideLoading(); }, 3000); // 延迟 3 秒隐藏 loading 提示框 ``` ##### 使用 `setInterval` 用于每隔固定时间段重复执行一段代码。 ```javascript let countDown = 60; // 初始化倒计时秒数 const intervalId = setInterval(() => { if (countDown === 0) { clearInterval(intervalId); console.log('倒计时结束'); } else { console.log(`剩余时间: ${countDown--} 秒`); } }, 1000); // 每隔一秒触发一次回调 ``` 上述代码展示了如何创建一个简单的倒计时功能[^3]。 --- #### 3. 时间戳转换 时间戳通常是以毫秒为单位表示自 Unix 纪元以来经过的时间。将其转化为可读性强的标准时间格式非常必要。 ```javascript function timestampToDate(timestamp) { const date = new Date(Number(timestamp)); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } // 调用示例 console.log(timestampToDate(Date.now())); // 当时间转成 YYYY-MM-DD 格式 ``` 该函数能够将任意给定的时间戳参数解析为指定格式的日期字符串[^4]。 --- #### 4. 计算两个日期之间的差值 计算两个日期之间相差的具体天数或者小时数等信息,在实际项目里也十分常见。 ```javascript function getDaysBetweenDates(startDateStr, endDateStr) { const startDate = new Date(startDateStr); const endDate = new Date(endDateStr); const diffInMilliseconds = Math.abs(endDate - startDate); const daysDifference = diffInMilliseconds / (1000 * 60 * 60 * 24); return Math.floor(daysDifference); } // 测试例子 console.log(getDaysBetweenDates('2023-09-01', '2023-09-15')); // 输出结果应为 14 天 ``` 这段脚本实现了基于输入起止日期来得出它们间隔了多少整天的功能[^5]。 --- #### 5. 高级场景——跨平台兼容性考虑 如果涉及到 H5 页面嵌入至微信小程序 WebView 的情况,则需特别留意不同运行环境下可能存在的差异行为。例如某些 API 可能在测试环境中正常工作但在正式上线后失效等问题已经有所提及[^1]。因此建议尽可能采用原生组件代替外部依赖以减少不确定性风险。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值