U.MT.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  1. //#region
  2. Namespace.register("U.MT");
  3. //把数据库的时间戳转换成可读时间
  4. //1、带一个参数
  5. //参数一:时间格式
  6. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  7. // 2、sqlserver 时间格式 /Date(1364812396843)/
  8. // 3、mongodb 时间格式 2018/01/01 01:01:01
  9. // 4、mysql 时间格式 2018-01-01 01:01:01
  10. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  11. //js转换mysql中datetime日期格式为00-00-00 00:00:00,转换后为:2016:11:23 09:09:09格式
  12. //U.MT.formatDateToArray = function (UOD, UTF) {
  13. // var _UTP = typeof UOD == "string",
  14. // _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"];
  15. // if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) {
  16. // UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date());
  17. // for (i = 0; i < _ude.length; i++) {
  18. // _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0);
  19. // _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i];
  20. // }
  21. // } //返回时间
  22. // else if (_UTP) {
  23. // UOD = new Date(UOD); //获取当前的时间
  24. // _ude = U.MT.formatDateToArray(UOD, true);
  25. // } //mysql返回的时间
  26. // return (UTF ? _ude : _ude.slice(0, 3).join("-") + " " + _ude.slice(3, 6).join(":")); //返回数据
  27. // ///Date(1364812396843)/
  28. // //2018/01/01 01:01:01
  29. // //2018-01-01 01:01:01
  30. //}
  31. //U.MT.formatDateToArray = function (UOD, UTF) {
  32. // try {
  33. // var _UTP = typeof UOD == "string",
  34. // _ude = ["getFullYear", "getMonth", "getDate", "getHours", "getMinutes", "getSeconds"];
  35. // if (!UOD || !_UTP || (_UTP && UOD.indexOf("Date") > -1)) {
  36. // UOD = _UTP ? new Date(parseInt(UOD.match(/[0-9]+/g)[0])) : (UOD || new Date());
  37. // for (i = 0; i < _ude.length; i++) {
  38. // _ude[i] = UOD[_ude[i]]() + (i == 1 ? 1 : 0);
  39. // _ude[i] = i > 2 ? _ude[i].prefixInteger() : _ude[i];
  40. // }
  41. // } //返回时间
  42. // else if (_UTP) {
  43. // UOD = new Date(UOD); //获取当前的时间
  44. // _ude = U.MT.formatDateToArray(UOD, true);
  45. // } //mysql返回的时间
  46. // return (UTF ? _ude : _ude.slice(0, 3).join("-") + " " + _ude.slice(3, 6).join(":")); //返回数据
  47. // } catch (e) { return UOD; }
  48. //}
  49. //把2018/01/01 01:01:01转换为"2017-11-06 09:24:32"
  50. //把2018-01-01 01:01:01时间转换为数组格式[2018,01,01,01,01,01]
  51. //方便用户自己拼接不同格式的时间。
  52. //参数一:时间格式
  53. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  54. // 2、sqlserver 时间格式 /Date(1364812396843)/
  55. // 3、mongodb 时间格式 2018/01/01 01:01:01
  56. // 4、mysql 时间格式 2018-01-01 01:01:01
  57. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  58. U.MT.formatDateToArray = function (date) {
  59. var _datearr = [];
  60. //javascript自带时间无需处理,并且不是string类型
  61. if (typeof date == "string") {
  62. if (date.indexOf("Date") > -1) { //sqlserver 格式处理
  63. date = new Date(parseInt(date.match(/[0-9]+/g)[0])); //正则会把2-4种时间格式转换为第一种格式. 2018/01/01 01:01:01 => 20180101010101
  64. }
  65. else {
  66. date = new Date(date);
  67. }
  68. }
  69. return [
  70. date.getFullYear(),
  71. date.getMonth() + 1, //月份加1
  72. date.getDate(),
  73. date.getHours(),
  74. date.getMinutes(),
  75. date.getSeconds()
  76. ];
  77. }
  78. //把数据库的时间戳转换成可读时间
  79. //参数一:时间格式
  80. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  81. // 2、sqlserver 时间格式 /Date(1364812396843)/
  82. // 3、mongodb 时间格式 2018/01/01 01:01:01
  83. // 4、mysql 时间格式 2018-01-01 01:01:01
  84. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  85. //获取时间戳对应的可读事件 Array返回数组事件 string 返回年月日处理
  86. //得到年月日,格式为:2018-01-01
  87. U.MT.getYearMonthDay = function (date) {
  88. date = U.MTformatDateToArray(date); //把时间格式化为数组
  89. date = date.slice(0, 3).join("-"); //拼凑需要的格式
  90. return date;
  91. }
  92. //把数据库的时间戳转换成可读时间
  93. //参数一:时间格式
  94. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  95. // 2、sqlserver 时间格式 /Date(1364812396843)/
  96. // 3、mongodb 时间格式 2018/01/01 01:01:01
  97. // 4、mysql 时间格式 2018-01-01 01:01:01
  98. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  99. //获取时间戳对应的可读事件 Array返回数组事件 string 返回年月日处理
  100. //得到年月日,格式为:2018-01-01
  101. U.MT.getHoursMinutesSecond = function (date) {
  102. date = U.MT.formatDateToArray(date, true); //把时间格式化为数组
  103. date = date.slice(3, 6).join(":"); //拼凑需要的格式
  104. return date;
  105. }
  106. //参数一:时间格式
  107. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  108. // 2、sqlserver 时间格式 /Date(1364812396843)/
  109. // 3、mongodb 时间格式 2018/01/01 01:01:01
  110. // 4、mysql 时间格式 2018-01-01 01:01:01
  111. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  112. U.MT.getFullTime = function (date) {
  113. date = U.MT.formatDateToArray(date, true); //把时间格式化为数组
  114. date = date.slice(0, 3).join("-") + " " + date.slice(3, 6).join(":"); //拼凑需要的格式
  115. return date;
  116. }
  117. //
  118. //判断现在时间和从前时间的间隔,精确到分钟,小时,天数.超过3天则返回 月日时分 超过1年则返回 年月日时分
  119. //参数一:时间格式
  120. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  121. // 2、sqlserver 时间格式 /Date(1364812396843)/
  122. // 3、mongodb 时间格式 2018/01/01 01:01:01
  123. // 4、mysql 时间格式 2018-01-01 01:01:01
  124. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  125. // 让学生重写
  126. U.MT.getDateInterval = function (date) {
  127. var _return, //申明变量
  128. _nowTime = U.MT.formatDateToArray(new Date(), "Array"), //申明变量_nowTime 并赋值
  129. _pastTime = U.MT.formatDateToArray(date, "Array"); //申明变量_pastTime 并赋值
  130. if (_nowTime[0] == _pastTime[0]) { //当年份为同一年时候
  131. if (_nowTime[2] - _pastTime[2] < 3) { //判断是否是三天内发的
  132. if (_nowTime[2] == _pastTime[2]) { //判断是否是同一天的
  133. if (_nowTime[3] == _pastTime[3]) { //判断是否是同一小时的
  134. _return = _nowTime[4] - _pastTime[4] + '分钟前'; //是同一小时的 就给_return赋值
  135. } else {
  136. _return = _nowTime[3] - _pastTime[3] + '小时前'; //不是同一小时的 就给_return赋值
  137. }
  138. } else {
  139. _return = _nowTime[2] - _pastTime[2] + '天前'; //不是同一天时的 就给_return赋值
  140. }
  141. } else {
  142. _return = _pastTime[1] + '月' + _pastTime[2] + '日' + _pastTime[3] + '点' + _pastTime[4] + '分'; //不是三天之内的 就给_return赋值
  143. }
  144. } else {
  145. _return = _pastTime[0] + '年' + _pastTime[1] + '月' + _pastTime[2] + '日' + _pastTime[3] + '点' + _pastTime[4] + '分'; //不是同一小年的 就给_return赋值
  146. }
  147. return _return;
  148. }
  149. //可读时间转化成标准时间类或者时间戳sqlserver 时间格式 /Date(1364812396843)/
  150. //U.MT.toTimeStamp(UWE.birth_year + "-" + UWE.birth_month + "-" + UWE.birth_day, "-")
  151. //把javascript时间统一为sqlserver的时间,即时间戳。
  152. //第二个参数不要.Time stamp
  153. U.MT.toTimeStamp = function (uod, utf) {
  154. var _timestamp;
  155. if (U.Ut.isString(uod)) {
  156. _timestamp = Date.parse(uod); //如果不需要 转换获取时间戳
  157. }
  158. else if (U.Ut.isArray(uod)) { //判断参数一是不是数组
  159. _timestamp = Date.UTC(uod[0], uod[1] - 1 || 1, uod[2] || 1, uod[3] - 8 || 1, uod[4] || 1, uod[5] || 1);
  160. } //转换获取时间戳
  161. else if (U.Ut.isDate(uod) || !uod) { //判断参数一是不是 日期 类型
  162. _timestamp = Date.parse(uod || new Date()); //转换获取时间戳
  163. }
  164. return "/Date(" + _timestamp + ")/";
  165. }
  166. //获取指定年月的天数,如果为2018年2月,则返回28天。
  167. //参数一:
  168. // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
  169. // 2、sqlserver 时间格式 /Date(1364812396843)/
  170. // 3、mongodb 时间格式 2018/01/01 01:01:01
  171. // 4、mysql 时间格式 2018-01-01 01:01:01
  172. // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
  173. U.MT.getDayOfMonth = function (date) {
  174. var _arrDate = U.MT.formatDateToArray(date); //把时间转换成数组形式
  175. if (_arrDate[1] == 2) { //判断输入的月份是否是2月
  176. if (_arrDate[0] % 4 != 0 && _arrDate[0] % 100 == 0 && _arrDate[0] % 400 != 0 && _arrDate[0] % 3200 == 0) {
  177. //是的话判断其是否不是闰年
  178. return 28; //不是就输出 28
  179. }
  180. return 29; //是的话输出 29
  181. } else {
  182. if (_arrDate[2] == 4 || _arrDate[2] == 6 || _arrDate[2] == 9 || _arrDate[2] == 11) {
  183. //判断 月份 是不是 4 6 9 11 月
  184. return 30; //是就输出30
  185. }
  186. return 31; //不是就输出31
  187. }
  188. }
  189. //比较两个时间的大小,2015-10-10 > 2014-10-10 ..文件夹或者文件从数据库取出来后是升序,现在前端做降序,则会调用冒泡排序。这里是冒泡排序比较时间
  190. //参数一:时间
  191. //参数二:时间
  192. //返回字符串,"true"或者"false",如果时间一大于时间二,则为true,否则为false.相等返回euqal
  193. //SizeComparison
  194. U.MT.SizeComparison = function (date, date1) {
  195. var _date = U.MT.formatDateToArray(date), //把时间处理成数组 并赋值
  196. _date1 = formatDateToArray(date1);
  197. for (var _i = 0; _i < _date.length; _i++) { //循环时间
  198. if (_date[_i] > _date1[_i]) return true; //判断数组中每一个元素的大小
  199. if (_date1[_i] > _date[_i]) return false; //date 大就返回true date1 大就返回 false
  200. }
  201. return 'equal'; //如果一模一样 返回'equal'
  202. }
  203. //Lowercase to uppercase
  204. //小写时间转大写时间
  205. U.MT.LowerToUpper = function (date) {
  206. var _i, _j,
  207. _dateArr = "",
  208. _dateWord = "",
  209. _word = [["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"],
  210. ["", "十", "百", "千", "万", "亿", "兆"],
  211. ["年", "月", "日", "点", "分", "秒"]];
  212. !date ? date = new Date() : ''; //默认为当前时间
  213. date = U.MT.formatDateToArray(date); //把时间转换成数组
  214. for (_i = 0; _i < date.length; _i++) { //遍历数组
  215. _dateArr = String(date[_i]); //转换为字符串
  216. if (_i == 1) { //当处理到年时
  217. for (_j = 0; _j < _dateArr.length; _j++) { //遍历字符串
  218. _dateWord += _word[0][_dateArr[_j]]; //循环按照顺序大写
  219. } //写进_dateWord
  220. } else { //当处理其他时候
  221. if (Number(_dateArr) > 10) { //判断时间是否大于十
  222. _dateWord += _word[0][_dateArr[0]] + _word[0][10] + (_dateArr[1] == '0' ? '' : _word[0][_dateArr[1]]); //大于十就在两个之间插个大写十
  223. } else {
  224. _dateWord += _word[0][_dateArr[0]]; //就变大写
  225. }
  226. }
  227. _dateWord += _word[2][_i]; //加上单位('年')之类
  228. }
  229. return _dateWord;
  230. }
  231. /*-----------------------------------------------未使用的函数------------------------------------------*/
  232. //js倒计处理
  233. U.MT.DJS = (function () {
  234. var _UFN = function (UDE, UFN) {
  235. var _UTF = false,
  236. _UL = UDE.length - 1,
  237. i = _UL, _UCE = [1, 24, 60, 60];
  238. for (; i > -1; i--) {
  239. if (UDE[i] > 0) {
  240. UDE[i]--; if (i < _UL) {
  241. UDE[i + 1] = _UCE[i + 1] - 1;
  242. } _UTF = !_UTF; break;
  243. }
  244. }
  245. (_UTF) && ((UFN) && (UFN(UDE)), setTimeout(U.M.apply(this, [[_UFN, [UDE, UFN]]]), 1000)); //回调计时
  246. }
  247. //设置时间
  248. return function (UTM, UFN) {
  249. var i, j, _UZ,
  250. _UKE = [60, 60, 24, 1],
  251. _ude = [],
  252. _UTS = ((new Date(UTM[0], UTM[1] - 1, UTM[2],
  253. UTM[3] || 0, UTM[4] || 0,
  254. UTM[5] || 0)) - (new Date())) / 1000;
  255. for (i = _UKE.length - 1; i >= 0; i--) {
  256. _UZ = _UTS;
  257. for (j = 0; j <= i; j++) {
  258. j == i ? _UZ %= _UKE[j] : _UZ /= _UKE[j];
  259. }
  260. _ude.push(parseInt(_UZ, 10));
  261. }
  262. _UFN(_ude, UFN); //获取倒计时的时间
  263. }
  264. })();
  265. //#endregion