Summary of javascript date tools

Summary of javascript date tools
let Utils = {
  /**
   * Is it the year of death? * @return {Boolse} true|false
   */
  isLeapYear: function(y) {
    return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0;
  },
  /**
   * Returns the week number * @return {Number}
   */
  getWhatDay: function(year, month, day) {
    let date = new Date(year + '/' + month + '/' + day);
    let index = date.getDay();
    let dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    return dayNames[index];
  },
  /**
   * Returns the week number * @return {Number}
   */
  getMonthPreDay: function(year, month) {
    let date = new Date(year + '/' + month + '/01');
    let day = date.getDay();
    if (day == 0) {
      day = 7;
    }
    return day;
  },
  /**
   * Returns the day of the month * @return {Number}
   */
  getMonthDays: function(year, month) {
    if (/^0/.test(month)) {
      month = month.split('')[1];
    }
    return [0, 31, this.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30, 31][month];
  },
  /**
   * Fill in the digits * @return {string}
   */
  getNumTwoBit: function(n) {
    n = Number(n);
    return (n > 9 ? '' : '0') + n;
  },
  /**
   * Convert the date object to a string * @return {string}
   */
  date2Str: function(date, split) {
    if (typeof date == 'string') return date;
    split = split || '-';
    let y = date.getFullYear();
    let m = this.getNumTwoBit(date.getMonth() + 1);
    let d = this.getNumTwoBit(date.getDate());
    return [y, m, d].join(split);
  },
  /**
   * Returns a date format string * @param {Number} 0 returns today's date, 1 returns tomorrow's date, 2 returns the day after tomorrow's date, and so on * @return {string} '2014-12-31'
   */
  getDay: function(i) {
    i = i || 0;
    let date = new Date();
    let diff = i * (1000 * 60 * 60 * 24);
    date = new Date(date.getTime() + diff);
    return this.date2Str(date);
  },
  /**
   * Timestamp converted to date format * @return {String}
   */
  timestampToDate: function(timestamp) {
    let date = new Date(timestamp);
    return date.getFullYear() + '-' + getNumTwoBit(date.getMonth() + 1) + '-' + getNumTwoBit(date.getDate());
  },
  /**
   * Time comparison * @return {Boolean}
   */
  compareDate: function(date1, date2) {
    let startTime = new Date(date1.replace('-', '/').replace('-', '/'));
    let endTime = new Date(date2.replace('-', '/').replace('-', '/'));
    if (startTime >= endTime) {
      return false;
    }
    return true;
  },
  /**
   * Time comparison * @return {Boolean}
   */
  compareDateArr: function(date1, date2) {
    let startTime = new Date();
    startTime.setFullYear(parseInt(date1[0]), parseInt(date1[1]) - 1, parseInt(date1[2]));
    startTime.setHours(parseInt(date1[3]), parseInt(date1[4]));
    let endTime = new Date();
    endTime.setFullYear(parseInt(date2[0]), parseInt(date2[1]) - 1, parseInt(date2[2]));
    endTime.setHours(parseInt(date2[3]), parseInt(date2[4]));
    if (startTime >= endTime) {
      return false;
    }
    return true;
  },
  /**
   * Are the times equal? ​​* @return {Boolean}
   */
  isEqual: function(date1, date2) {
    let startTime = new Date(date1).getTime();
    let endTime = new Date(date2).getTime();
    if (startTime == endTime) {
      return true;
    }
    return false;
  },
  getDateArr(str) {
    return [this.getYear(str), this.getMonth(str), this.getDate(str), this.getHour(str), this.getMinute(str)];
  },
  isDateString(str) {
    return /\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test(str) || /^([01][0-9]|2[0-3])(:[0-5][0-9]){1,2}$/.test(str);
  },
  getYear(value) {
    return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[0] : value.getFullYear();
  },
  getMonth(value) {
    return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[1] : value.getMonth() + 1;
  },
  getDate(value) {
    return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[2] : value.getDate();
  },
  getHour(value) {
    if (this.isDateString(value)) {
      const str = value.split(' ')[1] || '00:00:00';
      return str.split(':')[0];
    }
    return value.getHours();
  },
  getMinute(value) {
    if (this.isDateString(value)) {
      const str = value.split(' ')[1] || '00:00:00';
      return str.split(':')[1];
    }
    return value.getMinutes();
  }
};
export default Utils;

Summarize

This article ends here. I hope it can be helpful to you. I also hope that you can pay more attention to more content on 123WORDPRESS.COM!

You may also be interested in:
  • JavaScript DateUtils definition and usage examples
  • Detailed explanation of javascript date tool class DateUtils
  • Summary of 50+ Utility Functions in JavaScript
  • Java development tools - scala json format processing tool - json4s detailed explanation
  • Summary of JavaScript Common Tool Function Libraries

<<:  Markup Languages ​​- What to learn after learning HTML?

>>:  Mysql optimization tool (recommended)

Recommend

Detailed example of MySQL (5.6 and below) parsing JSON

MySQL (5.6 and below) parses json #json parsing f...

Detailed tutorial on using the tomcat8-maven-plugin plugin in Maven

I searched a lot of articles online but didn'...

Let's deeply understand the event object in js

We know that the commonly used events in JS are: ...

Web developers are concerned about the coexistence of IE7 and IE8

I installed IE8 today. When I went to the Microso...

Summary of 9 excellent code comparison tools recommended under Linux

When we write code, we often need to know the dif...

Problems with installing mysql and mysql.sock under linux

Recently, I encountered many problems when instal...

Nginx configuration and compatibility with HTTP implementation code analysis

Generate SSL Key and CSR file using OpenSSL To co...

How to use bar charts in Vue and modify the configuration yourself

1. Import echart in HTML file <!-- Import echa...

25 div+css programming tips and tricks

1. The ul tag has a padding value by default in M...

React + Threejs + Swiper complete code to achieve panoramic effect

Let’s take a look at the panoramic view effect: D...

Steps to completely uninstall the docker image

1. docker ps -a view the running image process [r...

CentOS 7 Forgot Password Solution Process Diagram

need Whether it is a Windows system or a Linux sy...

svg+css or js to create tick animation effect

Previously, my boss asked me to make a program th...