C端小程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

160 lines
4.1 KiB

  1. var barcode = require("./barcode");
  2. var qrcode = require("./qrcode");
  3. const formatTime = (date, fmt) => {
  4. try {
  5. if (!date) {
  6. return date;
  7. }
  8. if (typeof date == "number") {
  9. date = new Date(date);
  10. }
  11. var o = {
  12. "M+": date.getMonth() + 1, //月份
  13. "d+": date.getDate(), //日
  14. "h+": date.getHours(), //小时
  15. "m+": date.getMinutes(), //分
  16. "s+": date.getSeconds(), //秒
  17. "q+": Math.floor((date.getMonth() + 3) / 3), //季度
  18. S: date.getMilliseconds() //毫秒
  19. };
  20. if (/(y+)/.test(fmt))
  21. fmt = fmt.replace(
  22. RegExp.$1,
  23. (date.getFullYear() + "").substr(4 - RegExp.$1.length)
  24. );
  25. for (var k in o)
  26. if (new RegExp("(" + k + ")").test(fmt))
  27. fmt = fmt.replace(
  28. RegExp.$1,
  29. RegExp.$1.length == 1
  30. ? o[k]
  31. : ("00" + o[k]).substr(("" + o[k]).length)
  32. );
  33. return fmt;
  34. } catch (error) {
  35. return date;
  36. }
  37. };
  38. const formatNumber = n => {
  39. n = n.toString();
  40. return n[1] ? n : "0" + n;
  41. };
  42. function convert_length(length) {
  43. return Math.round((wx.getSystemInfoSync().windowWidth * length) / 750);
  44. }
  45. function barc(id, code, width, height) {
  46. barcode.code128(
  47. wx.createCanvasContext(id),
  48. code,
  49. convert_length(width),
  50. convert_length(height)
  51. );
  52. }
  53. function qrc(id, code, width, height) {
  54. qrcode.api.draw(code, {
  55. ctx: wx.createCanvasContext(id),
  56. width: convert_length(width),
  57. height: convert_length(height)
  58. });
  59. }
  60. function fmtDate(obj) {
  61. var date = new Date(obj);
  62. var y = 1900 + date.getYear();
  63. var m = "0" + (date.getMonth() + 1);
  64. var d = "0" + date.getDate();
  65. return (
  66. y +
  67. "-" +
  68. m.substring(m.length - 2, m.length) +
  69. "-" +
  70. d.substring(d.length - 2, d.length)
  71. );
  72. }
  73. //计算下单的时间与现在的时间的
  74. function timechuo(startTime) {
  75. var s1 = new Date(startTime.replace(/-/g, "/"));
  76. var s2 = new Date();
  77. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  78. var year = Math.floor(runTime / 86400 / 365);
  79. var runTime = runTime % (86400 * 365);
  80. var month = Math.floor(runTime / 86400 / 30);
  81. var runTime = runTime % (86400 * 30);
  82. var day = Math.floor(runTime / 86400);
  83. var runTime = runTime % 86400;
  84. var hour = Math.floor(runTime / 3600);
  85. var runTime = runTime % 3600;
  86. var minute = Math.floor(runTime / 60);
  87. var runTime = runTime % 60;
  88. var second = runTime;
  89. if (day && !year && !month){
  90. return (day + '天' + hour + "小时" + minute + "分钟")
  91. } else if (month && !year){
  92. return ((month*30+day) +'天' + hour + "小时" + minute + "分钟")
  93. } else if (year) {
  94. return ((year*365 + month*30+ day) + '天' + hour + "小时" + minute + "分钟")
  95. }else{
  96. return (hour + "小时" + minute + "分钟")
  97. }
  98. }
  99. //计算时间差
  100. function timecha(endTime,startTime) {
  101. var s1 = new Date(endTime.replace(/-/g, "/"));
  102. var s2 = new Date(startTime.replace(/-/g, "/"));
  103. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  104. var year = Math.floor(runTime / 86400 / 365);
  105. var runTime = runTime % (86400 * 365);
  106. var month = Math.floor(runTime / 86400 / 30);
  107. var runTime = runTime % (86400 * 30);
  108. var day = Math.floor(runTime / 86400);
  109. var runTime = runTime % 86400;
  110. var hour = Math.floor(runTime / 3600);
  111. var runTime = runTime % 3600;
  112. var minute = Math.floor(runTime / 60);
  113. var runTime = runTime % 60;
  114. var second = runTime;
  115. return (month+"月"+day+"天"+hour+"小时"+minute+"分钟")
  116. }
  117. function isJSON(str) {
  118. if (typeof str == 'string') {
  119. console.log("string")
  120. try {
  121. var obj = JSON.parse(str);
  122. if (typeof obj == 'object' && obj) {
  123. return true;
  124. } else {
  125. return false;
  126. }
  127. } catch (e) {
  128. console.log(e);
  129. wx.showToast({
  130. title: '请扫描正确的二维码',
  131. icon: 'none',
  132. duration: 1300
  133. })
  134. }
  135. } else {
  136. wx.showToast({
  137. title: '请扫描正确的二维码',
  138. icon: 'none',
  139. duration: 1300
  140. })
  141. }
  142. }
  143. module.exports = {
  144. formatTime: formatTime,
  145. barcode: barc,
  146. qrcode: qrc,
  147. isJSON: isJSON,
  148. fmtDate: fmtDate,
  149. timechuo:timechuo,
  150. timecha:timecha
  151. };