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.

207 line
5.4 KiB

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