欢迎光临,了解微信小程序开发,就上易用通!

Canvas 基础绘制,时间戳转化为几天前,几小时前,几分钟前

发布:2018-02-06 15:42浏览: 来源:网络 作者:cola

 


相关文章:跳坑《一百一十一》canvas相关问题说明 
以下所有 set 打头的方法均为微信小程序特有, 去掉 set 即为 CanvasRenderingContext2D 的属性名.

.stroke() 描出当前路径 
.setStrokeStyle(color) 设置路径颜色 
.setLineWidth(Number lineWidth) 设置路径宽度 
.setLineCap(String lineCap) 设置路径端点样式

.fill() 闭合并填充当前路径 
.setFillStyle(color) 设置填充色 
.setStrokeStyle(color) 设置路径色

.beginPath() 开始路径 
.moveTo() 创建一个点 
.lineTo() 创建一个点与上一个点连接 
.rac(x, y, 半径, 开始弧度, 结束弧度, 逆时针) 画一个弧形 
.rect(x, y, width, height) 画一个矩形 
.closePath() 闭合路径 
.rotate() 以原点为中心旋转 
.translate(x, y) 偏移原点位置

备注: 与数学坐标系 X 轴一致, Y 轴反转.

  • 画布对象
  • 颜色对象 Gradient

设置阴影 
.setShadow(offsetX, offsetY, blur, color)

创建线性渐变色 
.createLinearGradient()

创建辐射渐变色 
.createCircularGradient()

创建渐变色点 
Gradient.addColorStop()

设置路径转折点样式 
.setLineJoin(String lineJoin) 
.setMiterLimit(Number miterLimit)

 

二:时间戳转化为几天前,几小时前,几分钟前

 

分享者:jfaerfa,来自原文地址 
做项目的时候后台传到前台的时间格式都是时间戳,要是前台直接显示时间的话略显普通,若是将其转换成多久以前的发表的会不会觉得更好些呢?

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

Canvas 基础绘制,时间戳转化为几天前,几小时前,几分钟前(图1)

源码 
timestamp.wxml

 

  1. <view class="v_beforetime">转换前:{{time}}</view>
  2. <view class="v_aftertime">转换后:{{aftertime}}</view>
  3. <button class="btn_changeTimestamp" bindtap="changeTimestamp"> 转换 </button>

timestamp.wxss

 

  1. .page{
  2. height: 100%;
  3. width: 100%;
  4. }
  5.  
  6. .btn_changeTimestamp{
  7. width:400rpx;
  8. height:100rpx;
  9. margin-top: 20rpx;
  10. background:#0099FF;
  11. }
  12.  
  13. .v_beforetime{
  14. margin-top: 20rpx;
  15. background:#C0C0C0;
  16. }
  17. .v_aftertime{
  18. margin-top: 20rpx;
  19. background:#FF0000;
  20. }

timestamp.js

 

  1. // 时间戳转换成刚刚、几分钟前、几小时前、几天前
  2.  
  3. //刚刚
  4. var just = new Date().getTime();
  5.  
  6. //几分钟前
  7. var afewminutesago = new Date("Nov 29, 2016 00:50:00").getTime();
  8.  
  9. //几周前
  10. var afewweekago = new Date("Nov 29, 2016 00:50:00").getTime();
  11.  
  12. //几年前
  13. var someday = new Date("Nov 21, 2012 01:15:00").getTime();
  14.  
  15. var helloData = {
  16. time: afewweekago
  17. }
  18.  
  19. function getDateDiff(dateTimeStamp){
  20. var result;
  21. var minute = 1000 * 60;
  22. var hour = minute * 60;
  23. var day = hour * 24;
  24. var halfamonth = day * 15;
  25. var month = day * 30;
  26. var now = new Date().getTime();
  27. var diffValue = now - dateTimeStamp;
  28. if(diffValue < 0){
  29. return;
  30. }
  31. var monthC =diffValue/month;
  32. var weekC =diffValue/(7*day);
  33. var dayC =diffValue/day;
  34. var hourC =diffValue/hour;
  35. var minC =diffValue/minute;
  36. if(monthC>=1){
  37. if(monthC<=12)
  38. result="" + parseInt(monthC) + "月前";
  39. else{
  40. result="" + parseInt(monthC/12) + "年前";
  41. }
  42. }
  43. else if(weekC>=1){
  44. result="" + parseInt(weekC) + "周前";
  45. }
  46. else if(dayC>=1){
  47. result=""+ parseInt(dayC) +"天前";
  48. }
  49. else if(hourC>=1){
  50. result=""+ parseInt(hourC) +"小时前";
  51. }
  52. else if(minC>=1){
  53. result=""+ parseInt(minC) +"分钟前";
  54. }else{
  55. result="刚刚";
  56. }
  57.  
  58. return result;
  59. };
 

  1. Page({
  2. data: helloData,
  3. changeTimestamp: function (e) {
  4. var that = this;
  5. this.setData({
  6. aftertime: getDateDiff(that.data.time)
  7. })
  8. }
  9. })




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。