我是靠谱客的博主 奋斗未来,最近开发中收集的这篇文章主要介绍日期处理函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**
* 计算一个日期相隔几天的日期
* @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;
}

最后

以上就是奋斗未来为你收集整理的日期处理函数的全部内容,希望文章能够帮你解决日期处理函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部