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.

212 lines
5.5 KiB

  1. var barcode = require("./barcode");
  2. var qrcode = require("./qrcode");
  3. let imgProxy = [
  4. {
  5. "newUrl": "https://ctest.malls.iformall.com/img",
  6. "orgUrl": "https://iformall-net.s3.cn-northwest-1.amazonaws.com.cn"
  7. },
  8. {
  9. "newUrl": "https://ctest.malls.iformall.com/img1",
  10. "orgUrl": "https://s3.cn-northwest-1.amazonaws.com.cn"
  11. },
  12. {
  13. "newUrl": "https://ctest.malls.iformall.com/img2",
  14. "orgUrl": "https://wx.qlogo.cn"
  15. }
  16. ];
  17. function convertUTCTimeToLocalTime(UTCDateString) {
  18. if (!UTCDateString) {
  19. return '-';
  20. }
  21. function formatFunc(str) { //格式化显示
  22. return str > 9 ? str : '0' + str
  23. }
  24. var date2 = new Date(UTCDateString); //这步是关键
  25. var year = date2.getFullYear();
  26. var mon = formatFunc(date2.getMonth() + 1);
  27. var day = formatFunc(date2.getDate());
  28. var hour = date2.getHours();
  29. var noon = hour >= 12 ? 'PM' : 'AM';
  30. hour = hour >= 24 ? hour - 24 : hour;
  31. hour = formatFunc(hour);
  32. var min = formatFunc(date2.getMinutes());
  33. var dateStr = ' ' + hour + ':' + min ;
  34. return dateStr;
  35. }
  36. function fmtDate(date) {
  37. var dateee = new Date(date).toJSON();
  38. return new Date(+new Date(dateee) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '');
  39. }
  40. const formatTime = (date, fmt) => {
  41. try {
  42. if (!date) {
  43. return date;
  44. }
  45. if (typeof date == "number") {
  46. date = new Date(date);
  47. }
  48. var o = {
  49. "M+": date.getMonth() + 1, //月份
  50. "d+": date.getDate(), //日
  51. "h+": date.getHours(), //小时
  52. "m+": date.getMinutes(), //分
  53. "s+": date.getSeconds(), //秒
  54. "q+": Math.floor((date.getMonth() + 3) / 3), //季度
  55. S: date.getMilliseconds() //毫秒
  56. };
  57. if (/(y+)/.test(fmt))
  58. fmt = fmt.replace(
  59. RegExp.$1,
  60. (date.getFullYear() + "").substr(4 - RegExp.$1.length)
  61. );
  62. for (var k in o)
  63. if (new RegExp("(" + k + ")").test(fmt))
  64. fmt = fmt.replace(
  65. RegExp.$1,
  66. RegExp.$1.length == 1
  67. ? o[k]
  68. : ("00" + o[k]).substr(("" + o[k]).length)
  69. );
  70. return fmt;
  71. } catch (error) {
  72. return date;
  73. }
  74. };
  75. const formatNumber = n => {
  76. n = n.toString();
  77. return n[1] ? n : "0" + n;
  78. };
  79. function convert_length(length) {
  80. return Math.round((wx.getSystemInfoSync().windowWidth * length) / 750);
  81. }
  82. function barc(id, code, width, height) {
  83. barcode.code128(
  84. wx.createCanvasContext(id),
  85. code,
  86. convert_length(width),
  87. convert_length(height)
  88. );
  89. }
  90. function qrc(id, code, width, height) {
  91. qrcode.api.draw(code, {
  92. ctx: wx.createCanvasContext(id),
  93. width: convert_length(width),
  94. height: convert_length(height)
  95. });
  96. }
  97. function fmtDate(obj) {
  98. var date = new Date(obj);
  99. var y = 1900 + date.getYear();
  100. var m = "0" + (date.getMonth() + 1);
  101. var d = "0" + date.getDate();
  102. return (
  103. y +
  104. "-" +
  105. m.substring(m.length - 2, m.length) +
  106. "-" +
  107. d.substring(d.length - 2, d.length)
  108. );
  109. }
  110. //计算下单的时间与现在的时间的
  111. function timechuo(startTime) {
  112. var s1 = new Date(startTime.replace(/-/g, "/"));
  113. var s2 = new Date();
  114. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  115. var year = Math.floor(runTime / 86400 / 365);
  116. var runTime = runTime % (86400 * 365);
  117. var month = Math.floor(runTime / 86400 / 30);
  118. var runTime = runTime % (86400 * 30);
  119. var day = Math.floor(runTime / 86400);
  120. var runTime = runTime % 86400;
  121. var hour = Math.floor(runTime / 3600);
  122. var runTime = runTime % 3600;
  123. var minute = Math.floor(runTime / 60);
  124. var runTime = runTime % 60;
  125. var second = runTime;
  126. if (day && !year && !month){
  127. return (day + '天' + hour + "小时" + minute + "分钟")
  128. } else if (month && !year){
  129. return ((month*30+day) +'天' + hour + "小时" + minute + "分钟")
  130. } else if (year) {
  131. return ((year*365 + month*30+ day) + '天' + hour + "小时" + minute + "分钟")
  132. }else{
  133. return (hour + "小时" + minute + "分钟")
  134. }
  135. }
  136. //计算时间差
  137. function timecha(endTime,startTime) {
  138. var s1 = new Date(endTime.replace(/-/g, "/"));
  139. var s2 = new Date(startTime.replace(/-/g, "/"));
  140. var runTime = parseInt((s1.getTime() - s2.getTime()) / 1000);
  141. var year = Math.floor(runTime / 86400 / 365);
  142. var runTime = runTime % (86400 * 365);
  143. var month = Math.floor(runTime / 86400 / 30);
  144. var runTime = runTime % (86400 * 30);
  145. var day = Math.floor(runTime / 86400);
  146. var runTime = runTime % 86400;
  147. var hour = Math.floor(runTime / 3600);
  148. var runTime = runTime % 3600;
  149. var minute = Math.floor(runTime / 60);
  150. var runTime = runTime % 60;
  151. var second = runTime;
  152. return (month+"月"+day+"天"+hour+"小时"+minute+"分钟")
  153. }
  154. function isJSON(str) {
  155. if (typeof str == 'string') {
  156. console.log("string")
  157. try {
  158. var obj = JSON.parse(str);
  159. if (typeof obj == 'object' && obj) {
  160. return true;
  161. } else {
  162. return false;
  163. }
  164. } catch (e) {
  165. console.log(e);
  166. wx.showToast({
  167. title: '请扫描正确的二维码',
  168. icon: 'none',
  169. duration: 1300
  170. })
  171. }
  172. } else {
  173. wx.showToast({
  174. title: '请扫描正确的二维码',
  175. icon: 'none',
  176. duration: 1300
  177. })
  178. }
  179. }
  180. function getProxyImgUrl(str) {
  181. let str1 = str;
  182. imgProxy.map(file=>{
  183. if (str.indexOf(file.orgUrl) == 0) {
  184. str1 = str.replace(file.orgUrl, file.newUrl)
  185. return
  186. }
  187. })
  188. return str1
  189. }
  190. module.exports = {
  191. formatTime: formatTime,
  192. barcode: barc,
  193. qrcode: qrc,
  194. isJSON: isJSON,
  195. fmtDate: fmtDate,
  196. timechuo: timechuo,
  197. timecha: timecha,
  198. getProxyImgUrl: getProxyImgUrl,
  199. convertUTCTimeToLocalTime: convertUTCTimeToLocalTime
  200. };