選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

198 行
5.2 KiB

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