`
SuperCustomer
  • 浏览: 110173 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

日期处理函数

 
阅读更多
/**
 * 计算一个日期相隔几天的日期
 * @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;
}
 
分享到:
评论

相关推荐

    oracle日期处理函数大全

    以下是一些关键的Oracle日期处理函数和SQL语句的详细说明: 1. **TO_DATE函数**:用于将字符串转换为日期。例如,`TO_DATE('2022-04-05', 'YYYY-MM-DD')`将字符串'2022-04-05'转换为日期。日期格式必须与提供的模式...

    VB日期处理函数VB日期处理函数

    VB日期处理函数VB日期处理函数VB日期处理函数VB日期处理函数

    c/c++中的日期处理函数详解

    C/C++中的日期处理函数详解 C/C++中的日期处理函数是Linux系统中处理日期和时间的重要组件。下面详细介绍日期处理函数的概念、数据结构和相关函数的应用。 概念 日期处理函数的概念可以分为四个方面:世界标准...

    SqlServer日期处理函数

    ### SqlServer 日期处理函数详解 #### 概述 SqlServer 提供了一系列强大的日期处理函数,这些函数可以帮助开发者和数据库管理员高效地操作日期和时间数据。本文档将详细介绍几个常用的日期处理函数及其应用场景,并...

    shell日期处理函数

    附件是shell的日期处理函数,包含大多数的日期处理方法,希望对大家有帮助。

    SqlServer时间日期处理函数及字符串转换

    SqlServer时间日期处理函数及字符串转换 SqlServer时间日期处理函数及字符串转换 文章分类:数据库 最近做的报表,用SqlServer2005,边做边学吧,虽然速度有些慢~

    mysql日期处理函数实例解析

    MySQL中的日期处理函数是数据库操作中的重要组成部分,它们允许开发者对日期和时间数据进行各种复杂的操作。在MySQL中,日期通常存储为`DATE`类型,时间存储为`TIME`类型,而日期时间则存储为`DATETIME`或`TIMESTAMP...

    oracle自定义日期函数

    Oracle 日期处理函数是数据库管理系统中非常重要的一部分,最近看到有人在做 T-SQL 与 PL/SQL 的转化,问了些有关时间函数的处理。在 PL/SQL 中,Oracle 提供了其他的方法来处理日期函数,例如 DATE_ADD 函数。在 T-...

    delphi、 sql 日期时间函数

    在实际开发中,结合使用Delphi的日期处理函数和SQL的日期时间函数,可以构建出强大的数据处理和分析系统。例如,你可能需要在Delphi程序中获取当前日期,然后将这个日期插入到MSSQL数据库中,或者根据用户输入的日期...

    impala自定义日期处理的udf函数

    由于impala处理日期的函数如date_sub(),date_trunc(),last_day()等这些日期处理函数还需要进行日期格式化为yyyy-MM-dd使用,sql代码段过长,导致频繁嵌套过于复杂.所以自定义udf函数解决这些问题.以下为实现过程.

    报表开发工具FineReport日期常用处理函数

    FineReport报表开发工具提供了一系列的日期处理函数,这些函数可以帮助开发者完成从获取当前日期和时间到日期的加减、格式化以及转换等任务。下面将详细介绍一下这些常用的日期处理函数和它们的应用。 首先,...

    PB 12个用一条语句写成的有关日期函数_PB日期函数_

    标题中的“PB 12个用一条语句写成的有关日期函数”指的是在PowerBuilder(PB)编程环境中,利用单个表达式实现的12种不同的日期处理函数。这些函数通常涉及日期的转换、计算以及提取特定日期部分等操作。在PB中,...

    javascript日期处理函数,性能优化批处理

    日期处理函数在JavaScript中扮演着重要的角色,它们帮助开发者完成日期的格式化、比较以及解析等操作。但是,如果处理不当,日期处理函数可能会成为性能瓶颈,特别是在批处理的情况下。 首先,来看看优化之前的情况...

    PHP日期处理函数 整型日期格式

    PHP日期处理函数是处理日期和时间的标准方式,它们在Web开发中扮演着重要的角色。针对标题中提到的“整型日期格式”,我们可以深入探讨PHP中处理日期的函数,以及如何将日期转换为整型表示,进而计算日期间的差异。 ...

    ABAP计算日期的函数

    综上所述,ABAP提供了丰富的日期处理函数,涵盖了从基本的日期格式化到复杂的日期区间计算,以及日期与周的关系分析等多个方面。熟练掌握这些函数的使用,将极大提升开发效率,确保应用程序的时间敏感性需求得到精准...

    在oracle中处理日期大全

    TO_DATE 函数是 Oracle 中最常用的日期处理函数之一,它可以将字符串转换为日期类型。其基本语法为: `TO_DATE(string, format)` 其中,`string` 是要转换的字符串,`format` 是转换的格式。 例如: `SELECT TO_...

    oracle日期处理全集-日期加减全活儿.docx

    Oracle 日期处理是数据库中的一种重要功能,它提供了多种日期处理函数,能够满足不同业务场景下的日期处理需求。下面我们将对 Oracle 日期处理函数进行详细介绍。 add_months 函数 add_months 函数用于将日期推迟...

    函数函数函数函数函数函数函数

    - 时间日期处理函数:格式化日期,计算时间差等。 学习和使用这样的函数集可以帮助开发者提高工作效率,减少重复代码,并确保代码风格的一致性。同时,对于初学者来说,通过研究这些函数的实现,也能深入理解编程...

Global site tag (gtag.js) - Google Analytics