javaScript日期工具类DateUtils详解

本文实例为大家分享了javaScript日期工具类的具体代码,供大家参考,具体内容如下

DateUtils = {
    patterns: {
      PATTERN_ERA: 'G', //Era 标志符 Era strings. For example: "AD" and "BC"
      PATTERN_YEAR: 'y', //年
      PATTERN_MONTH: 'M', //月份
      PATTERN_DAY_OF_MONTH: 'd', //月份的天数
      PATTERN_HOUR_OF_DAY1: 'k', //一天中的小时数(1-24)
      PATTERN_HOUR_OF_DAY0: 'H', //24小时制,一天中的小时数(0-23)
      PATTERN_MINUTE: 'm', //小时中的分钟数
      PATTERN_SECOND: 's', //秒
      PATTERN_MILLISECOND: 'S', //毫秒
      PATTERN_DAY_OF_WEEK: 'E', //一周中对应的星期,如星期一,周一
      PATTERN_DAY_OF_YEAR: 'D', //一年中的第几天
      PATTERN_DAY_OF_WEEK_IN_MONTH: 'F', //一月中的第几个星期(会把这个月总共过的天数除以7,不够准确,推荐用W)
      PATTERN_WEEK_OF_YEAR: 'w', //一年中的第几个星期
      PATTERN_WEEK_OF_MONTH: 'W', //一月中的第几星期(会根据实际情况来算)
      PATTERN_AM_PM: 'a', //上下午标识
      PATTERN_HOUR1: 'h', //12小时制 ,am/pm 中的小时数(1-12)
      PATTERN_HOUR0: 'K', //和h类型
      PATTERN_ZONE_NAME: 'z', //时区名
      PATTERN_ZONE_VALUE: 'Z', //时区值
      PATTERN_WEEK_YEAR: 'Y', //和y类型
      PATTERN_ISO_DAY_OF_WEEK: 'u',
      PATTERN_ISO_ZONE: 'X'
    },
    week: {
      'ch': {
        "0": "\u65e5",
        "1": "\u4e00",
        "2": "\u4e8c",
        "3": "\u4e09",
        "4": "\u56db",
        "5": "\u4e94",
        "6": "\u516d"
      },
      'en': {
        "0": "Sunday",
        "1": "Monday",
        "2": "Tuesday",
        "3": "Wednesday",
        "4": "Thursday",
        "5": "Friday",
        "6": "Saturday"
      }
    },
    //获取当前时间
    getCurrentTime: function() {
      var today = new Date();
      var year = today.getFullYear();
      var month = today.getMonth() + 1;
      var day = today.getDate();
      var hours = today.getHours();
      var minutes = today.getMinutes();
      var seconds = today.getSeconds();
      var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
      return timeString;
    },
    /*
     * 比较时间大小
     * time1>time2 return 1
     * time1<time2 return -1
     * time1==time2 return 0
     */
    compareTime: function(time1, time2) {
      if(Date.parse(time1.replace(/-/g, "/")) > Date.parse(time2.replace(/-/g, "/"))) {
        return 1;
      } else if(Date.parse(time1.replace(/-/g, "/")) < Date.parse(time2.replace(/-/g, "/"))) {
        return -1;
      } else if(Date.parse(time1.replace(/-/g, "/")) == Date.parse(time2.replace(/-/g, "/"))) {
        return 0;
      }
    },
    //是否闰年
    isLeapYear: function(year) {
      return((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0);
    },
    //获取某个月的天数,从0开始
    getDaysOfMonth: function(year, month) {
      return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
    },
    getDaysOfMonth2: function(year, month) {
      // 将天置为0,会获取其上个月的最后一天
      month = parseInt(month) + 1;
      var date = new Date(year, month, 0);
      return date.getDate();
    },
    /*距离现在几天的日期:负数表示今天之前的日期,0表示今天,整数表示未来的日期
     * 如-1表示昨天的日期,0表示今天,2表示后天
     */
    fromToday: function(days) {
      var today = new Date();
      today.setDate(today.getDate() + days);
      var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
      return date;
    },
    /**
     * 日期时间格式化
     * @param {Object} dateTime 需要格式化的日期时间
     * @param {String} pattern 格式化的模式,如yyyy-MM-dd hh(HH):mm:ss.S a k K E D F w W z Z
     */
    formt: function(dateTime, pattern) {
      var date = new Date(dateTime);
      if(Bee.StringUtils.isBlank(pattern)) {
        return date.toLocaleString();
      }
      return pattern.replace(/([a-z])\1*/ig, function(matchStr, group1) {
        var replacement = "";
        switch(group1) {
          case Bee.DateUtils.patterns.PATTERN_ERA: //G
            break;
          case Bee.DateUtils.patterns.PATTERN_WEEK_YEAR: //Y
          case Bee.DateUtils.patterns.PATTERN_YEAR: //y
            replacement = date.getFullYear();
            break;
          case Bee.DateUtils.patterns.PATTERN_MONTH: //M
            var month = date.getMonth() + 1;
            replacement = (month < 10 && matchStr.length >= 2) ? "0" + month : month;
            break;
          case Bee.DateUtils.patterns.PATTERN_DAY_OF_MONTH: //d
            var days = date.getDate();
            replacement = (days < 10 && matchStr.length >= 2) ? "0" + days : days;
            break;
          case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY1: //k(1~24)
            var hours24 = date.getHours();
            replacement = hours24;
            break;
          case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY0: //H(0~23)
            var hours24 = date.getHours();
            replacement = (hours24 < 10 && matchStr.length >= 2) ? "0" + hours24 : hours24;
            break;
          case Bee.DateUtils.patterns.PATTERN_MINUTE: //m
            var minutes = date.getMinutes();
            replacement = (minutes < 10 && matchStr.length >= 2) ? "0" + minutes : minutes;
            break;
          case Bee.DateUtils.patterns.PATTERN_SECOND: //s
            var seconds = date.getSeconds();
            replacement = (seconds < 10 && matchStr.length >= 2) ? "0" + seconds : seconds;
            break;
          case Bee.DateUtils.patterns.PATTERN_MILLISECOND: //S
            var milliSeconds = date.getMilliseconds();
            replacement = milliSeconds;
            break;
          case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK: //E
            var day = date.getDay();
            replacement = Bee.DateUtils.week['ch'][day];
            break;
          case Bee.DateUtils.patterns.PATTERN_DAY_OF_YEAR: //D
            replacement = Bee.DateUtils.dayOfTheYear(date);
            break;
          case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK_IN_MONTH: //F
            var days = date.getDate();
            replacement = Math.floor(days / 7);
            break;
          case Bee.DateUtils.patterns.PATTERN_WEEK_OF_YEAR: //w
            var days = Bee.DateUtils.dayOfTheYear(date);
            replacement = Math.ceil(days / 7);
            break;
          case Bee.DateUtils.patterns.PATTERN_WEEK_OF_MONTH: //W
            var days = date.getDate();
            replacement = Math.ceil(days / 7);
            break;
          case Bee.DateUtils.patterns.PATTERN_AM_PM: //a
            var hours24 = date.getHours();
            replacement = hours24 < 12 ? "\u4e0a\u5348" : "\u4e0b\u5348";
            break;
          case Bee.DateUtils.patterns.PATTERN_HOUR1: //h(1~12)
            var hours12 = date.getHours() % 12 || 12; //0转为12
            replacement = (hours12 < 10 && matchStr.length >= 2) ? "0" + hours12 : hours12;
            break;
          case Bee.DateUtils.patterns.PATTERN_HOUR0: //K(0~11)
            var hours12 = date.getHours() % 12;
            replacement = hours12;
            break;
          case Bee.DateUtils.patterns.PATTERN_ZONE_NAME: //z
            replacement = Bee.DateUtils.getZoneNameValue(date)['name'];
            break;
          case Bee.DateUtils.patterns.PATTERN_ZONE_VALUE: //Z
            replacement = Bee.DateUtils.getZoneNameValue(date)['value'];
            break;
          case Bee.DateUtils.patterns.PATTERN_ISO_DAY_OF_WEEK: //u
            break;
          case Bee.DateUtils.patterns.PATTERN_ISO_ZONE: //X
            break;
          default:
            break;
        }
        return replacement;
      });
    },
    /**
     * 计算一个日期是当年的第几天
     * @param {Object} date
     */
    dayOfTheYear: function(date) {
      var obj = new Date(date);
      var year = obj.getFullYear();
      var month = obj.getMonth(); //从0开始
      var days = obj.getDate();
      var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
      for(var i = 0; i < month; i++) {
        days += daysArr[i];
      }
      return days;
    },
    //获得时区名和值
    getZoneNameValue: function(dateObj) {
      var date = new Date(dateObj);
      date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
      var arr = date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/);
      var obj = {
        'name': arr[1],
        'value': arr[2]
      };
      return obj;
    }
  }; 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Java日期工具类DateUtils实例详解

    在项目开发中,日期是我们必不可少的的一部分,本文将总结代码开发中的关于日期常用的一些方法,以方便自己后期使用.下面直接上菜了: package com.example.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.ut

  • java针对于时间转换的DateUtils工具类

    本文实例为大家分享了时间转换的DateUtils工具类,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; /** * 时间日期工具类 * *

  • java中DateUtils时间工具类详解

    本文实例为大家分享了DateUtils时间工具类的具体代码,供大家参考,具体内容如下 package com.example.administrator.myapp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Date 工具类 * Created by lychun on 2017/12/07

  • Java日期时间格式化操作DateUtils 的整理

    Java日期时间格式化操作DateUtils 的整理 直接上代码,总结了开发过程中经常用到的日期时间格式化操作! import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.TimeUnit; /** * ClassName: DateUtils <br/> * D

  • Java使用DateUtils对日期进行数学运算经典应用示例【附DateUtils相关包文件下载】

    本文实例讲述了Java使用DateUtils对日期进行数学运算的方法.分享给大家供大家参考,具体如下: 最近在写数据上传的程序,需要对Date进行一些数学运算,个人感觉在java中,日期的数学运算还是比较常用的,所以把Date的数学运算都玩了一下.试了一下,发现DateUtils这个工具类对于Date的数学运算非常方便,见代码吧. package date; import java.text.SimpleDateFormat; import java.util.Date; import org.

  • java日期工具类实例分享

    复制代码 代码如下: /** * 日期工具类 * 默认使用 "yyyy-MM-dd HH:mm:ss" 格式化日期 */public final class DateUtils {/*** 英文简写(默认)如:2010-12-01*/public static String FORMAT_SHORT = "yyyy-MM-dd";/*** 英文全称  如:2010-12-01 23:15:06*/public static String FORMAT_LONG =

  • Java 中DateUtils日期工具类的实例详解

    Java 中DateUtils日期工具类的实例详解 介绍 在java中队日期类型的处理并不方便,通常都需要借助java.text.SimpleDateFormat类来实现日期类型 和字符串类型之间的转换,但是在jdk1.8之后有所改善,jdk1.7以及之前的版本处理日期类型并不方便, 可以借助Joda Time组件来处理,尤其是日期类型的一些数学操作就更是不方便. java代码 /** * * 日期工具类 java对日期的操作一直都很不理想,直到jdk1.8之后才有了本质的改变. * 如果使用的

  • javaScript日期工具类DateUtils详解

    本文实例为大家分享了javaScript日期工具类的具体代码,供大家参考,具体内容如下 DateUtils = { patterns: { PATTERN_ERA: 'G', //Era 标志符 Era strings. For example: "AD" and "BC" PATTERN_YEAR: 'y', //年 PATTERN_MONTH: 'M', //月份 PATTERN_DAY_OF_MONTH: 'd', //月份的天数 PATTERN_HOUR_O

  • JavaScript日期工具类DateUtils定义与用法示例

    本文实例讲述了JavaScript日期工具类DateUtils定义与用法.分享给大家供大家参考,具体如下: DateUtils = { patterns: { PATTERN_ERA: 'G', //Era 标志符 Era strings. For example: "AD" and "BC" PATTERN_YEAR: 'y', //年 PATTERN_MONTH: 'M', //月份 PATTERN_DAY_OF_MONTH: 'd', //月份的天数 PATT

  • Java日期处理工具类DateUtils详解

    本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * <日期时间处理工具类> */ public class DateUtils { /** * Dat

  • javaScript字符串工具类StringUtils详解

    本文实例为大家分享了javaScript字符串工具类的具体代码,供大家参考,具体内容如下 StringUtils = { isEmpty: function(input) { return input == null || input == ''; }, isNotEmpty: function(input) { return !this.isEmpty(input); }, isBlank: function(input) { return input == null || /^\s*$/.t

  • java日期相关类实例详解

    一.Date类 类 Date 表示特定的瞬间,精确到毫秒.用距离1970年1月1日00:00:00的毫秒数(long)类型来表示一个特定的时间点,该值可正可负. Date类中很多方法已经过时,使用Calendar来替代. 常用方法有 long getTime() void setTime(long time) public class T01Date { public static void main(String[] args) { //getTime():返回的时间是距离1970年的毫秒数.

  • Java多线程同步工具类CountDownLatch详解

    目录 简介 核心方法 CountDownLatch如何使用 CountDownLatch运行流程 运用场景 总结 简介 CountDownLatch是一个多线程同步工具类,在多线程环境中它允许多个线程处于等待状态,直到前面的线程执行结束.从类名上看CountDown既是数量递减的意思,我们可以把它理解为计数器. 核心方法 countDown():计数器递减方法. await():使调用此方法的线程进入等待状态,直到计数器计数为0时主线程才会被唤醒. await(long, TimeUnit):在

  • Java常用类之日期相关类使用详解

    目录 日期相关类 1.Date类 2.DateFormat类 3.Calendar类 日期相关类 1.Date类 在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒.在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Date类就可以完成. 例子:Date类的使用 package li.normalclass.date; import java.util.Date; public class TestDate { public static void m

  • javaScript手机号码校验工具类PhoneUtils详解

    本文实例为大家分享了javaScript手机号码校验工具类PhoneUtils的具体代码,供大家参考,具体内容如下 //PhoneUtils命名空间 PhoneUtils = { phoneRegexs: { //中国电信号码段 CHINA_TELECOM_PATTERN: /^(?:\+86)?1(?:33|53|7[37]|8[019])\d{8}$|^(?:\+86)?1700\d{7}$/, //中国联通号码段 CHINA_UNICOM_PATTERN: /^(?:\+86)?1(?:3

  • java Arrays工具类实例详解

    Arrays工具类属于java中常用的工具类 public static void sort(int[] a) public static void sort(int[] a,int fromIndex, int toIndex) public static void sort(long[] a) public static void sort(long[] a,int fromIndex, int toIndex) public static void sort(short[] a) publ

  • Java中JSON处理工具类使用详解

    本文实例为大家分享了JSON处理工具类的具体代码,供大家参考,具体内容如下 import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.seri

随机推荐