123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- //#region
- Namespace.register("U.UF.D");
- //把2018/01/01 01:01:01转换为"2017-11-06 09:24:32"
- //把2018-01-01 01:01:01时间转换为数组格式[2018,01,01,01,01,01]
- //方便用户自己拼接不同格式的时间。
- //参数一:时间格式
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- // 6,input type=datetime-local 时间格式
- U.UF.D.formatDateToArray = function (date) {
- var _datearr = [];
- //javascript自带时间无需处理,并且不是string类型
- if (typeof date == "string") {
- if (date.indexOf("Date") > -1) { //sqlserver 格式处理
- date = new Date(parseInt(date.match(/[0-9]+/g)[0])); //正则会把2-4种时间格式转换为第一种格式. 2018/01/01 01:01:01 => 20180101010101
- }
- else {
- date = new Date(date);
- }
- }
- return [
- date.getFullYear(),
- date.getMonth() + 1, //月份加1
- date.getDate(),
- date.getHours(),
- date.getMinutes(),
- date.getSeconds()
- ];
- }
- //把数据库的时间戳转换成可读时间
- //参数一:时间格式
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- //获取时间戳对应的可读事件 Array返回数组事件 string 返回年月日处理
- //得到年月日,格式为:2018-01-01
- U.UF.D.getYearMonthDay = function (date) {
- if (date) {
- var _date = U.UF.D.formatDateToArray(date); //把时间格式化为数组
- var _dates = _date.slice(0, 3).join("-"); //拼凑需要的格式
- return _dates;
- }
- return "";
- }
- //把数据库的时间戳转换成可读时间
- //参数一:时间格式
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- //获取时间戳对应的可读事件 Array返回数组事件 string 返回年月日处理
- //得到年月日,格式为:2018-01-01
- U.UF.D.getHoursMinutesSecond = function (date) {
- var _date = U.UF.D.formatDateToArray(date, true); //把时间格式化为数组
- var _dates = _date.slice(3, 6).join(":"); //拼凑需要的格式
- return _dates;
- }
- //参数一:时间格式
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- U.UF.D.getFullTime = function (date) {
- var _date = U.UF.D.formatDateToArray(date, true); //把时间格式化为数组
- var _dates = _date.slice(0, 3).join("-") + " " + _date.slice(3, 6).join(":"); //拼凑需要的格式
- return _dates;
- }
- //
- //判断现在时间和从前时间的间隔,精确到分钟,小时,天数.超过3天则返回 月日时分 超过1年则返回 年月日时分
- //参数一:时间格式
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- // 让学生重写
- U.UF.D.getDateInterval = function (date) {
- var _return, //申明变量
- _nowTime = U.UF.D.formatDateToArray(new Date(), "Array"), //申明变量_nowTime 并赋值
- _pastTime = U.UF.D.formatDateToArray(date, "Array"); //申明变量_pastTime 并赋值
- if (_nowTime[0] == _pastTime[0]) { //当年份为同一年时候
- if (_nowTime[2] - _pastTime[2] < 3 && _nowTime[1] == _pastTime[1]) { //判断是否是三天内发的
- if (_nowTime[2] == _pastTime[2]) { //判断是否是同一天的
- if (_nowTime[3] == _pastTime[3]) { //判断是否是同一小时的
- _return = _nowTime[4] - _pastTime[4] + '分钟前'; //是同一小时的 就给_return赋值
- } else {
- _return = _nowTime[3] - _pastTime[3] + '小时前'; //不是同一小时的 就给_return赋值
- }
- } else {
- _return = _nowTime[2] - _pastTime[2] + '天前'; //不是同一天时的 就给_return赋值
- }
- } else {
- _return = _pastTime[1] + '-' + _pastTime[2] + ' ' + _pastTime[3] + ':' + _pastTime[4] + ''; //不是三天之内的 就给_return赋值
- }
- } else {
- _return = _pastTime[0] + '-' + _pastTime[1] + '-' + _pastTime[2] + ' ' + _pastTime[3] + ':' + _pastTime[4] + ''; //不是同一小年的 就给_return赋值
- }
- return _return;
- }
- //可读时间转化成标准时间类或者时间戳sqlserver 时间格式 /Date(1364812396843)/
- //U.UF.D.toTimeStamp(UWE.birth_year + "-" + UWE.birth_month + "-" + UWE.birth_day, "-")
- //把javascript时间统一为sqlserver的时间,即时间戳。
- //第二个参数不要.Time stamp
- U.UF.D.toTimeStamp = function (uod) {
- var _timestamp;
- if (U.UF.C.isString(uod)) {
- _timestamp = Date.parse(uod); //如果不需要 转换获取时间戳
- }
- else if (Array.isArray(uod)) { //判断参数一是不是数组
- _timestamp = Date.UTC(uod[0], uod[1] - 1 || 1, uod[2] || 1, uod[3] - 8 || 1, uod[4] || 1, uod[5] || 1);
- } //转换获取时间戳
- else if (U.UF.D.isDate(uod) || !uod) { //判断参数一是不是 日期 类型
- _timestamp = Date.parse(uod || new Date()); //转换获取时间戳
- }
- return "/Date(" + _timestamp + ")/";
- }
- //获取指定年月的天数,如果为2018年2月,则返回28天。
- //参数一:
- // 1、javascrpt 自带的时间格式 datetime类型 Sun Mar 04 2018 18:45:54 GMT+0800 (中国标准时间)
- // 2、sqlserver 时间格式 /Date(1364812396843)/
- // 3、mongodb 时间格式 2018/01/01 01:01:01
- // 4、mysql 时间格式 2018-01-01 01:01:01
- // 5、nodejs的json时间"2018-03-04T11:14:27.878Z"
- U.UF.D.getDayOfMonth = function (date) {
- var _arrDate = U.UF.D.formatDateToArray(date); //把时间转换成数组形式
- var _date = new Date(_arrDate[0], _arrDate[1], 0); //根据年月生成js时间格式
- return _date.getDate(); //返回年月对应的日
- }
- //比较两个时间的大小,2015-10-10 > 2014-10-10 ..文件夹或者文件从数据库取出来后是升序,现在前端做降序,则会调用冒泡排序。这里是冒泡排序比较时间
- //参数一:时间
- //参数二:时间
- //返回字符串,"true"或者"false",如果时间一大于时间二,则为true,否则为false.相等返回euqal
- //SizeComparison
- U.UF.D.sizeComparison = function (date, date1) {
- var _date = U.UF.D.formatDateToArray(date), //把时间处理成数组 并赋值
- _date1 = U.UF.D.formatDateToArray(date1);
- for (var _i = 0; _i < _date.length; _i++) { //循环时间
- if (_date[_i] > _date1[_i]) return true; //判断数组中每一个元素的大小
- if (_date1[_i] > _date[_i]) return false; //date 大就返回true date1 大就返回 false
- }
- return 'equal'; //如果一模一样 返回'equal'
- }
- //Lowercase to uppercase
- //小写时间转大写时间
- U.UF.D.lowerToUpper = function (date) {
- var _i, _j,
- _dateArr = "",
- _dateWord = "",
- _word = [["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"],
- ["", "十", "百", "千", "万", "亿", "兆"],
- ["年", "月", "日", "点", "分", "秒"]];
- !date ? date = new Date() : ''; //默认为当前时间
- date = U.UF.D.formatDateToArray(date); //把时间转换成数组
- for (_i = 0; _i < date.length; _i++) { //遍历数组
- _dateArr = String(date[_i]); //转换为字符串
- if (_i == 1) { //当处理到年时
- for (_j = 0; _j < _dateArr.length; _j++) { //遍历字符串
- _dateWord += _word[0][_dateArr[_j]]; //循环按照顺序大写
- } //写进_dateWord
- } else { //当处理其他时候
- if (Number(_dateArr) > 10) { //判断时间是否大于十
- _dateWord += _word[0][_dateArr[0]] + _word[0][10] + (_dateArr[1] == '0' ? '' : _word[0][_dateArr[1]]); //大于十就在两个之间插个大写十
- } else {
- _dateWord += _word[0][_dateArr[0]]; //就变大写
- }
- }
- _dateWord += _word[2][_i]; //加上单位('年')之类
- }
- return _dateWord;
- }
- //#endregion
- /**
- * 判断是否为时间
- *
- * @param {Date} 时间对象值
- * @return {boolean} 是否为Date
- */
- U.UF.D.isDate = function (date) {
- return U.UF.C.isObject(date) && U.UF.C.objectToString(date) == "[object Date]";
- }
- //
- U.UF.D.datetimeLocal = function (date) {
- return date;
- }
|