util.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. function ViewImage(imgList, e) {
  2. uni.previewImage({
  3. urls: imgList,
  4. current: e.currentTarget.dataset.url
  5. });
  6. }
  7. function formatDate(t) {
  8. t = t || Date.now();
  9. let time = new Date(t);
  10. let str = time.getMonth() < 9 ? ((time.getMonth() + 1)) : (time.getMonth() + 1);
  11. str += '月-';
  12. str += time.getDate() < 10 ? (time.getDate()) : time.getDate() + "日";
  13. // str += ' ';
  14. // str += time.getHours();
  15. // str += ':';
  16. // str += time.getMinutes() < 10 ? ('0' + time.getMinutes()) : time.getMinutes();
  17. return str;
  18. }
  19. function formatTime(time) {
  20. if (typeof time !== 'number' || time < 0) {
  21. return time
  22. }
  23. var hour = parseInt(time / 3600)
  24. time = time % 3600
  25. var minute = parseInt(time / 60)
  26. time = time % 60
  27. var second = time
  28. return ([hour, minute, second]).map(function(n) {
  29. n = n.toString()
  30. return n[1] ? n : '0' + n
  31. }).join(':')
  32. }
  33. // 判断是否为手机号
  34. function isPhoneNumber(pone) {
  35. var myreg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
  36. if (!myreg.test(pone)) {
  37. return false;
  38. } else {
  39. return true;
  40. }
  41. }
  42. //密码判断
  43. function isPassword(p) {
  44. var myreg = /^[a-zA-Z0-9]{6,12}$/;
  45. if (!myreg.test(p)) {
  46. return false;
  47. } else {
  48. return true;
  49. }
  50. }
  51. //判断验证码
  52. function isCaptcha(p) {
  53. var myreg = /^[0-9A-Za-z]{4,12}$/;
  54. if (!myreg.test(p)) {
  55. return false;
  56. } else {
  57. return true;
  58. }
  59. }
  60. function isEmail(p) {
  61. var myreg = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/
  62. if (!myreg.test(p)) {
  63. return false
  64. } else {
  65. return true
  66. }
  67. }
  68. function isNum(val) {
  69. if (val == "" || val == null) {
  70. return false
  71. }
  72. if (!isNaN(val)) {
  73. return true
  74. } else {
  75. return false
  76. }
  77. }
  78. //判断用户名
  79. function isUserName(p) {
  80. var myreg = /^[a-zA-Z0-9]{1,20}$/;
  81. if (!myreg.test(p)) {
  82. return false;
  83. } else {
  84. return true;
  85. }
  86. }
  87. //判断身份证
  88. function isIdCard(value) {
  89. let myReg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  90. if (!myReg.test(value)) {
  91. return false;
  92. } else {
  93. return true;
  94. }
  95. }
  96. const isEmpty = function(a) {
  97. return typeof(a) == 'undefined' || a == null || a == '' || a == 'undefined';
  98. }
  99. function formatLocation(longitude, latitude) {
  100. if (typeof longitude === 'string' && typeof latitude === 'string') {
  101. longitude = parseFloat(longitude)
  102. latitude = parseFloat(latitude)
  103. }
  104. longitude = longitude.toFixed(2)
  105. latitude = latitude.toFixed(2)
  106. return {
  107. longitude: longitude.toString().split('.'),
  108. latitude: latitude.toString().split('.')
  109. }
  110. }
  111. var dateUtils = {
  112. UNITS: {
  113. '年': 31557600000,
  114. '月': 2629800000,
  115. '天': 86400000,
  116. '小时': 3600000,
  117. '分钟': 60000,
  118. '秒': 1000
  119. },
  120. humanize: function(milliseconds, date) {
  121. var humanize = '';
  122. var _format = function(number) {
  123. return (number < 10 ? ('0' + number) : number);
  124. };
  125. for (var key in this.UNITS) {
  126. if (milliseconds >= this.UNITS[key]) {
  127. switch (key) {
  128. case '小时':
  129. humanize = _format(date.getHours()) + ':' + _format(date.getMinutes());
  130. break;
  131. default:
  132. humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
  133. break;
  134. }
  135. break;
  136. }
  137. }
  138. return humanize || '刚刚';
  139. },
  140. format: function(dateStr) {
  141. var date = this.parse(dateStr)
  142. var diff = Date.now() - date.getTime();
  143. if (diff < this.UNITS['天']) {
  144. return this.humanize(diff, date);
  145. }
  146. var _format = function(number) {
  147. return (number < 10 ? ('0' + number) : number);
  148. };
  149. return date.getFullYear() + '-' + _format(date.getMonth() + 1) + '-' + _format(date.getDate()) + '-' +
  150. _format(date.getHours()) + ':' + _format(date.getMinutes());
  151. },
  152. formatHms: function(dateStr) {
  153. var date = this.parse(dateStr)
  154. var _format = function(number) {
  155. return (number < 10 ? ('0' + number) : number);
  156. };
  157. return _format(date.getHours()) + ':' + _format(date.getMinutes());
  158. },
  159. formatYMD: function(dateStr) {
  160. var date = this.parse(dateStr)
  161. var _format = function(number) {
  162. return (number < 10 ? ('0' + number) : number);
  163. };
  164. return date.getFullYear() + '-' + _format(date.getMonth() + 1) + '-' + _format(date.getDate());
  165. },
  166. parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
  167. if (!str) {
  168. return new Date();
  169. }
  170. var a = str.split(/[^0-9]/);
  171. return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
  172. },
  173. /**************************************时间格式化处理************************************/
  174. dateFtt(fmt, date) { //author: meizz
  175. var o = {
  176. "M+": date.getMonth() + 1, //月份
  177. "d+": date.getDate(), //日
  178. "H+": date.getHours(), //小时
  179. "m+": date.getMinutes(), //分
  180. "s+": date.getSeconds(), //秒
  181. "q+": Math.floor((date.getMonth() + 3) / 3), //季度
  182. "S": date.getMilliseconds() //毫秒
  183. };
  184. if (/(y+)/.test(fmt))
  185. fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  186. for (var k in o)
  187. if (new RegExp("(" + k + ")").test(fmt))
  188. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  189. return fmt;
  190. },
  191. };
  192. module.exports = {
  193. formatTime: formatTime,
  194. isPhoneNumber: isPhoneNumber,
  195. isUserName: isUserName,
  196. isPassword: isPassword,
  197. isCaptcha: isCaptcha,
  198. formatLocation: formatLocation,
  199. dateUtils: dateUtils,
  200. isEmpty: isEmpty,
  201. isIdCard: isIdCard,
  202. ViewImage: ViewImage,
  203. isEmail: isEmail,
  204. isNum: isNum,
  205. formatDate: formatDate
  206. }