概述
/** * 计算一个日期相隔几天的日期 * @param date,日期对象,可选参数,默认为系统当前时间 * @param interval,相隔天数,负数代表前几天,正数代表后几天,可选参数,默认为1 * @returns {Date} */ function nextDay(date, interval) { interval = typeof (date) == 'number' ? date : isNaN(interval) ? 1 : interval; date = typeof (date) == 'object' && !isNaN(date) ? date : new Date(); var nextday = new Date(); nextday.setTime(nextday.getTime() + interval * 24 * 60 * 60 * 1000); return nextday; } /** * 把日期字符串转换成日期对象 * @param datestr,日期字符串,格式:yyyy分隔符MM分隔符dd,必须参数 * @returns {Date} */ function getDate(datestr) { datestr = datestr.split(datestr.charAt(4)); var date = new Date(); date.setFullYear(datestr[0], datestr[1], datestr[2]); return date; } /** * 格式化日期 * @param date,日期对象,可选参数,默认为系统当前时间 * @param fill,月日时分秒小于10时是否补零,可选参数,默认为false * @returns {yyyy-MM-dd HH:mm:ss} */ function formatDateTime(date, fill) { fill = typeof(date) == 'boolean' ? date : typeof(fill) == 'boolean' ? fill : false; date = typeof (date) == 'object' && !isNaN(date) ? date : new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); if (fill) { if (month < 10) month = "0" + month; if (day < 10) day = "0" + day; if (hour < 10) hour = "0" + hour; if (minute < 10) minute = "0" + minute; if (second < 10) second = "0" + second; } return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second; } /** * 格式化日期 * @param date,日期对象,可选参数,默认为系统当前时间 * @param separator 分隔符,可选参数,默认为"-" * @param fill,月日小于10时是否补零,可选参数,默认为false * @returns {yyyy分隔符MM分隔符dd} */ function formatDate(date, separator, fill) { fill = typeof(date) == 'boolean' ? date : typeof(separator) == 'boolean' ? separator : typeof(fill) == 'boolean' ? fill : false; separator = date && typeof(date) == 'string' ? date : separator && typeof(separator) == 'string' ? separator : "-"; date = typeof (date) == 'object' && !isNaN(date) ? date : new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); if (fill) { if (month < 10) month = "0" + month; if (day < 10) day = "0" + day; } return year + separator + month + separator + day; } /** * 格式化时间 * @param date,日期对象,可选参数,默认为系统当前时间 * @param separator 分隔符,可选参数,默认为":" * @param fill,时分秒小于10时是否补零,可选参数,默认为false * @returns {HH分隔符mm分隔符ss} */ function formatTime(date, separator, fill){ fill = typeof(date) == 'boolean' ? date : typeof(separator) == 'boolean' ? separator : typeof(fill) == 'boolean' ? fill : false; separator = date && typeof(date) == 'string' ? date : separator && typeof(separator) == 'string' ? separator : "-"; date = typeof (date) == 'object' && !isNaN(date) ? date : new Date(); var hour = date.getHours(); var minute = date.getMinutes(); var second = date.getSeconds(); if (fill) { if (hour < 10) hour = "0" + hour; if (minute < 10) minute = "0" + minute; if (second < 10) second = "0" + second; } return hour + separator + minute + separator + second; } /** * 获取星期 * @param date,日期对象,可选参数,默认为系统当前时间 * @param lang,语言,中文(zh)、英文(en)、日文(jp),可选参数,默认为"zh" * @returns {String} */ function getWeekday(date, lang) { lang = date && typeof(date) == 'string' ? date : lang ? lang : "zh"; date = typeof (date) == 'object' && !isNaN(date) ? date : new Date(); var weekday = []; if (lang == "zh") { weekday = [ '日', '一', '二', '三', '四', '五', '六' ]; } else if (lang == "en") { weekday = [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ]; } else if (lang == "jp") { weekday = [ '日', '月', '火', '水', '木', '金', '土' ]; } return weekday[date.getDay()]; } /** * 计算两个日期之间相隔几天 * @param datestr1,日期字符串,yyyy分隔符MM分隔符dd,必须参数 * @param datestr2,日期字符串,yyyy分隔符MM分隔符dd,必须参数 * @param separator 分隔符,可选参数,默认为":" * @returns {Number} */ function getIntervalDays(datestr1, datestr2, separator) { separator = separator ? separator : "-"; datestr1 = datestr1.split(separator); var date1 = new Date(); date1.setFullYear(datestr1[0], datestr1[1], datestr1[2]); datestr2 = datestr2.split(separator); var date2 = new Date(); date2.setFullYear(datestr2[0], datestr2[1], datestr2[2]); return parseInt(date2.getTime() - date1.getTime()) / 1000 / 60 / 60 / 24; } /** * 计算两个时间之间相差多少小时 * @param time1,格式:HH分隔符mm分隔符ss,必须参数 * @param time2,格式:HH分隔符mm分隔符ss,必须参数 * @param separator 分隔符,可选参数,默认为":" * @returns {Number} */ function getIntervalHours(time1, time2, separator) { return getIntervalSeconds(time1, time2, separator) / 60 / 60; } /** * 计算两个时间之间相差多少分 * @param time1,格式为HH分隔符mm分隔符ss,必须参数 * @param time2,格式为HH分隔符mm分隔符ss,必须参数 * @param separator 分隔符,可选参数,默认为":" * @returns {Number} */ function getIntervalMinutes(time1, time2, separator) { return getIntervalSeconds(time1, time2, separator) / 60; } /** * 计算两个时间之间相差多少秒 * @param time1,格式为HH分隔符mm分隔符ss,必须参数 * @param time2,格式为HH分隔符mm分隔符ss,必须参数 * @param separator 分隔符,可选参数,默认为":" * @returns {Number} */ function getIntervalSeconds(time1, time2, separator) { separator = separator ? separator : ":"; var date1 = new Date(); date1.setHours(time1.split(separator)[0], time1.split(separator)[1], time1.split(separator)[2]); var date2 = new Date(); date2.setHours(time2.split(separator)[0], time2.split(separator)[1], time2.split(separator)[2]); return (date2.getTime() - date1.getTime()) / 1000; } /** * 获取一个月的天数 * @param year,四位数字,必须参数 * @param month,1~12,必须参数 * @returns {Number} */ function getDaysOfMonth(year, month) { var arr = [ 31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; return arr[month - 1]; } /** * 判断是否为闰年 * @param year,四位数字,必须参数 * @returns {Boolean} */ function isLeapYear(year) { if (year % 4 == 0 && (year % 100 != 0 || year % 400 != 0)) { return true; } return false; }
最后
以上就是奋斗未来为你收集整理的日期处理函数的全部内容,希望文章能够帮你解决日期处理函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复