小程序组件之时间戳转化为几天前,几小时前,几分钟前

本文介绍了一种在微信小程序中将时间戳转换为更友好的时间格式的方法,如“几分钟前”、“几小时前”等,并提供了完整的源码及示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做项目的时候后台传到前台的时间格式都是时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢?
例如我们所在的 微信小程序俱乐部:




那么如何写一个微信小程序的时间戳转换工具呢?附上小程序时间戳转换效果图:


源码
  • timestamp.wxml
  • <view class="v_beforetime">转换前:{{time}}</view>
  • <view class="v_aftertime">转换后:{{aftertime}}</view>
  • <button class="btn_changeTimestamp" bindtap="changeTimestamp"> 转换 </button>
  • timestamp.wxss
  • .page{
  •     height: 100%;
  •     width: 100%;
  • }

  • .btn_changeTimestamp{
  •     width:400rpx;
  •     height:100rpx;
  •     margin-top: 20rpx;
  •     background:#0099FF;
  • }

  • .v_beforetime{
  •     margin-top: 20rpx;
  •     background:#C0C0C0;
  • }
  • .v_aftertime{
  •     margin-top: 20rpx;
  •     background:#FF0000;
  • }
  • timestamp.js
  • // 时间戳转换成刚刚、几分钟前、几小时前、几天前

  • //刚刚
  • var just = new Date().getTime();

  • //几分钟前
  • var afewminutesago  = new Date("Nov 29, 2016 00:50:00").getTime();

  • //几周前
  • var afewweekago  = new Date("Nov 29, 2016 00:50:00").getTime();

  • //几年前
  • var someday = new Date("Nov 21, 2012 01:15:00").getTime();

  • var helloData = {
  •     time: afewweekago
  • }

  • function getDateDiff(dateTimeStamp){
  •   var result;
  •     var minute = 1000 * 60;
  •     var hour = minute * 60;
  •     var day = hour * 24;
  •     var halfamonth = day * 15;
  •     var month = day * 30;
  •     var now = new Date().getTime();
  •     var diffValue = now - dateTimeStamp;
  •     if(diffValue < 0){
  •     return;
  •   }
  •     var monthC =diffValue/month;
  •     var weekC =diffValue/(7*day);
  •     var dayC =diffValue/day;
  •     var hourC =diffValue/hour;
  •     var minC =diffValue/minute;
  •     if(monthC>=1){
  •     if(monthC<=12)
  •           result="" + parseInt(monthC) + "月前";
  •     else{
  •       result="" + parseInt(monthC/12) + "年前";
  •     }
  •     }
  •     else if(weekC>=1){
  •         result="" + parseInt(weekC) + "周前";
  •     }
  •     else if(dayC>=1){
  •         result=""+ parseInt(dayC) +"天前";
  •     }
  •     else if(hourC>=1){
  •         result=""+ parseInt(hourC) +"小时前";
  •     }
  •     else if(minC>=1){
  •         result=""+ parseInt(minC) +"分钟前";
  •     }else{
  •     result="刚刚";
  •   }

  •     return result;
  • };

  • Page({
  •     data: helloData,
  •     changeTimestamp: function (e) {
  •         var that = this;
  •         this.setData({
  •             aftertime: getDateDiff(that.data.time)
  •         })
  •     }
  • })
  • `
实例下载请戳原文:http://bbs.jointforce.com/topic/24571
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值