`

js日常日期时间操作

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</HEAD>

<BODY>

<script language=Javascript>
String.prototype.Left = function(len){
if(isNaN(len)||len==null){
len = 0;
} else {
if(parseInt(len)<0||parseInt(len)>this.length) {
len = 0;
}
}
return this.substr(0,this.length-len)+'**';
}
//日期自动补零程序
function appendZero(n)
{
return(("00"+ n).substr(("00"+ n).length-2));
}
//获得当年当月最大天数
function GetMonthMaxDay(theYear,theMonth){ 
var theDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var theMonthDay = 0, tmpYear = this.formatYear(theYear);
theMonthDay = theDays[theMonth];
if (theMonth == 1){ //theMonth is February
if (((tmpYear % 4 == 0) && (tmpYear % 100 != 0)) || (tmpYear % 400 == 0)){
theMonthDay++;
}
}
return(theMonthDay);
}
//把年份格式化成4位
function formatYear(theYear){ 
var tmpYear = parseInt(theYear,10);
if (tmpYear < 100){
tmpYear += 1900;
if (tmpYear < 1940){
tmpYear += 100;
}
}
if (tmpYear < this.MinYear){
tmpYear = this.MinYear;
}
if (tmpYear > this.MaxYear){
tmpYear = this.MaxYear;
}
return(tmpYear);
}
//对javascript日期进行格式化
//formattype是返回的时间类型
//返回:返回时间串
function formatDate(day,formattype){
var dateString = "";

var thisyear = formatYear(day.getFullYear());
var thismonth = appendZero(day.getMonth()+1);
var thisday = appendZero(day.getDate());
var thishour = appendZero(day.getHours());
var thismin  = appendZero(day.getMinutes());
var thissec  = appendZero(day.getSeconds());
switch (formattype){
case 0:
dateString = thisyear + "年" + thismonth + "月" + thisday + "日";
break;
case 1:
dateString = thisyear + "-" + thismonth + "-" + thisday;
break;
case 2:
dateString = thisyear + "-" + thismonth + "-" + thisday+ " " + appendZero(thishour) + ":" + appendZero(thismin) + ":" + appendZero(thissec);
break;
default:
dateString = thisyear + "-" + thismonth + "-" + thisday;
}
return dateString;
}
//取得本周第一天
function getWeekFirstDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
return formatDate(WeekFirstDay,formattype);
}
//取得本周第七天
function getWeekLastDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
return formatDate(WeekLastDay,formattype);
}
function testDate() {
var Nowdate=new Date();
//本月
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
alert(MonthFirstDay.getFullYear())
alert(appendZero(MonthFirstDay.getMonth()+1))
//上月
var lastMonth = new Date(Nowdate.getFullYear(),Nowdate.getMonth()-1,1);
alert(lastMonth.getFullYear())
alert(appendZero(lastMonth.getMonth()+1))


}
//取得本月第一天
function getMonthFirstDay(formattype)
{
var Nowdate=new Date();
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
return formatDate(MonthFirstDay,formattype);
}
//取得本月最后一天
function getMonthLastDay(formattype)
{
var Nowdate=new Date();
var MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1,1);
var MonthLastDay=new Date(MonthNextFirstDay-86400000);
return formatDate(MonthLastDay,formattype);
}
function getDateFromString(strDate){

var arrYmd = strDate.split("-");
for(var i=0;i<arrYmd.length;i++){
if(arrYmd[i].length>1 && arrYmd[i].indexOf("0")==0)
arrYmd[i]= arrYmd[i].substring(1);
}
var numYear = parseInt(arrYmd[0]);
var numMonth = parseInt(arrYmd[1]) - 1;
var numDay = parseInt(arrYmd[2]);
return new Date(numYear, numMonth, numDay);
}
/*
下列函数返回需要的时间 偏移值不能大于30
参数:dadd是日偏移值,-表示向前推,+向后推
formattype是返回的时间类型
返回:返回时间串
*/
function getDiffDate(dadd,formattype)
{
//可以加上错误处理
var a = new Date();
a = a.valueOf();
a = a + dadd * 24 * 60 * 60 * 1000;
a = new Date(a);
return formatDate(a,formattype);
}

//getDiffDate(+2,0)

//取得指定日期的年月日时分秒
//参数:dateValue 是格式形如:2007/04/05
function TimeCom(dateValue){
var newCom = new Date(dateValue);
this.year = newCom.getFullYear();
this.month = newCom.getMonth()+1;
this.day = newCom.getDate();
this.hour = newCom.getHours();
this.minute = newCom.getMinutes();
this.second = newCom.getSeconds();
this.msecond = newCom.getMilliseconds();
this.week = newCom.getDay();
}

//取得两个日期之间的时间差
//参数:interval : y或year-表示取得相差的年份 n或month-表示相差的月份 d或day表示相差的天数 h或hour-表示相差的小时 m或minute-表示相差的分钟 s或second-表示相差的秒数 ms或msecond-表示相差的毫秒数 w或week-表示相差的周数
//      date1:起始日期
//      date2:结束日期
function DateDiff(interval,date1,date2)
{
var TimeCom1 = new TimeCom(date1);
var TimeCom2 = new TimeCom(date2);
var result;
switch(String(interval).toLowerCase())
{
case "y":
case "year":
result = TimeCom1.year-TimeCom2.year;
break;
case "n":
case "month":
result = (TimeCom1.year-TimeCom2.year)*12+(TimeCom1.month-TimeCom2.month);
break;
case "d":
case "day":
result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24));
break;
case "h":
case "hour":
result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour))/(1000*60*60));
break;
case "m":
case "minute":
result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute))/(1000*60));
break;
case "s":
case "second":
result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second))/1000);
break;
case "ms":
case "msecond":
result = Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day,TimeCom1.hour,TimeCom1.minute,TimeCom1.second,TimeCom1.msecond)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day,TimeCom2.hour,TimeCom2.minute,TimeCom2.second,TimeCom1.msecond);
break;
case "w":
case "week":
result = Math.round((Date.UTC(TimeCom1.year,TimeCom1.month-1,TimeCom1.day)-Date.UTC(TimeCom2.year,TimeCom2.month-1,TimeCom2.day))/(1000*60*60*24)) % 7;
break;
default:
result = "invalid";
}
return(result);
}
/*
下列函数返回需要的时间 偏移值不能大于30
参数:interval : y或year-表示取得相差的年份 n或month-表示相差的月份 d或day表示相差的天数 h或hour-表示相差的小时 m或minute-表示相差的分钟 s或second-表示相差的秒数 ms或msecond-表示相差的毫秒数 w或week-表示相差的周数
num是偏移值,-表示向前推,+向后推
dateValue 指定的日期
formattype是返回的时间类型
返回:返回时间串
*/
function DateAdd(interval,num,dateValue,formattype)
{
var newCom = new TimeCom(dateValue);
switch(String(interval).toLowerCase())
{
case "y": case "year": newCom.year += num; break;
case "n": case "month": newCom.month += num; break;
case "d": case "day": newCom.day += num; break;
case "h": case "hour": newCom.hour += num; break;
case "m": case "minute": newCom.minute += num; break;
case "s": case "second": newCom.second += num; break;  
case "ms": case "msecond": newCom.msecond += num; break;
case "w": case "week": newCom.day += num*7; break;
default: return("invalid");
}
var now = newCom.year+"/"+newCom.month+"/"+newCom.day+" "+newCom.hour+":"+newCom.minute+":"+newCom.second;
return formatDate(new Date(now),formattype);
}
//alert(DateAdd('d',-30,new Date(),0));
//取得当前日期
function getToDay(formattype){
var Nowdate=new Date();
M=Number(Nowdate.getMonth())+1;
Nowdate = new Date(Nowdate.getFullYear()+"/"+M+"/"+Nowdate.getDate());
return formatDate(Nowdate,formattype);
}
//上月第一天
function getPreviousFirstDay(formattype)
{
var Nowdate=new Date();
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()-1,1);
return formatDate(MonthFirstDay,formattype);
}

//上月最后一天
function getPreviousLastDay(formattype)
{
var Nowdate=new Date();
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
return formatDate(new Date(MonthFirstDay-86400000),formattype);
}
//上周第一天
function getPreviousFirstWeekDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
WeekFirstDay=new Date(WeekFirstDay-86400000*7);
return formatDate(WeekFirstDay,formattype);
}
//上周最后一天
function showPreviousLastWeekDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
WeekFirstDay = new Date(WeekFirstDay-86400000);
return formatDate(WeekFirstDay,formattype);
}
//上一天
function getPreviousDay(formattype)
{
var MonthFirstDay=new Date();
MonthFirstDay = new Date(MonthFirstDay-86400000);
return formatDate(MonthFirstDay,formattype);
}
//下一天
function getNextDay(formattype)
{
var MonthFirstDay=new Date();
MonthFirstDay = new Date((MonthFirstDay/1000+86400)*1000);
return formatDate(MonthFirstDay,formattype);
}
//下周第一天
function getNextFirstWeekDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
var MonthFirstDay=new Date((WeekFirstDay/1000+6*86400)*1000);
MonthFirstDay=new Date((MonthFirstDay/1000+86400)*1000);
return formatDate(MonthFirstDay,formattype); 
}
//下周最后一天
function getNextLastWeekDay(formattype)
{
var Nowdate=new Date();
var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
var WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);
var MonthFirstDay=new Date((WeekLastDay/1000+7*86400)*1000);
return formatDate(MonthFirstDay,formattype); 
}
//下月第一天
function getNextFirstDay(formattype)
{
var Nowdate=new Date();
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
MonthFirstDay=new Date(MonthFirstDay.getYear(),MonthFirstDay.getMonth()+1,1);
return formatDate(MonthFirstDay,formattype);
}
//下月最后一天
function getNextLastDay(formattype)
{
var Nowdate=new Date();
var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
MonthFirstDay=new Date(new Date(MonthFirstDay.getYear(),MonthFirstDay.getMonth()+2,1)-86400000);
return formatDate(MonthFirstDay,formattype);
}
function getDateList(){

var d = new Date('2007/07/07');
alert(d.getMonth())

}
</script>

<input   name=haha   type=button   value="本周第一天"   onclick=alert(getWeekFirstDay(0))><br />  
<input   name=haha   type=button   value="本周第七天"   onclick=alert(getWeekLastDay(0))><br />  
<input   name=haha   type=button   value="本月第一天"   onclick=alert(getMonthFirstDay(0))><br />  
<input   name=haha   type=button   value="本月最后一天"   onclick=alert(getMonthLastDay(0))><br />
<input   name=haha   type=button   value="推前两天"   onclick=alert(getDiffDate(-2,0))><br />  
<input   name=haha   type=button   value="推后两天"   onclick=alert(getDiffDate(2,0))><br />
<input   name=haha   type=button   value="相差多个?"   onclick=alert(DateDiff('d','2007/04/05','2008/01/02'))><br />  
<input   name=haha   type=button   value="日期随意加减"   onclick=alert(DateAdd('d',2,'2007/04/05',0))><br />

<input   name=haha   type=button   value="取得当前日期"   onclick=alert(getToDay(0))><br />  
<input   name=haha   type=button   value="取得上月第一天"   onclick=alert(getPreviousFirstDay(0))><br />  
<input   name=haha   type=button   value="取得上月最后一天"   onclick=alert(getPreviousLastDay(0))><br />  
<input   name=haha   type=button   value="取得上周第一天"   onclick=alert(getPreviousFirstWeekDay(0))><br />  
<input   name=haha   type=button   value="取得上周最后一天"   onclick=alert(showPreviousLastWeekDay(0))><br />  

<input   name=haha   type=button   value="昨天"   onclick=alert(getPreviousDay(0))><br />  
<input   name=haha   type=button   value="今天"   onclick=alert(getToDay(0))><br />
<input   name=haha   type=button   value="明天"   onclick=alert(getNextDay(0))><br />  
<input   name=haha   type=button   value="下周第一天"   onclick=alert(getNextFirstWeekDay(0))><br />  
<input   name=haha   type=button   value="下周最后一天"   onclick=alert(getNextLastWeekDay(0))><br />  
<input   name=haha   type=button   value="下月第一天"   onclick=alert(getNextFirstDay(0))><br />  
<input   name=haha   type=button   value="下月最后一天"   onclick=alert(getNextLastDay(2007-07-07))><br />
<input id=button type=button value="test"  onclick=alert('weixinjie'.Left(2))>

<input id=button type=button value="tt"  onclick=getDateList()>
</BODY>
</HTML>
分享到:
评论

相关推荐

    Js获取当前日期时间及格式化代码

    标题中的知识点:Js获取当前日期时间及格式化代码。 描述中的知识点:介绍了...上述代码和方法展示了如何使用JavaScript进行日期时间的基本操作和格式化处理,方便开发者在日常开发过程中对日期时间进行处理和展示。

    时间日期JavaScript 选择时间日期

    2. **日期时间选择器组件** 在网页上,用户友好地选择日期通常需要一个交互式的日期选择器。JavaScript库如jQuery UI的`datepicker`插件,Bootstrap的`datetimepicker`,或者现代的React组件库如Material-UI的`...

    3个js日期时间控件(2个可选小时分钟)

    在JavaScript编程中,日期时间...总的来说,JavaScript日期时间控件是提高用户界面交互性的重要工具,特别是那些支持选择小时和分钟的控件,它们在日常Web应用中广泛使用,帮助用户轻松、准确地输入日期和时间信息。

    JS日期选择控件和日期类型操作

    在JavaScript中,日期处理是日常开发中不可或缺的一部分。本文将深入探讨JS中的日期选择控件、日期类型验证以及如何计算两个日期之间的差值。 一、JS日期选择控件 在前端开发中,为了提高用户体验,我们经常需要为...

    纯JS方法比较日期之间大小(实用)

    在JavaScript中,`Date`对象是处理日期和时间的标准方式。可以通过构造函数创建一个`Date`对象,并对其进行各种操作。 #### 2. 获取日期信息 在上述代码片段中,首先获取了表单中的两个日期值:`startTime` 和 `...

    js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)

    在JavaScript中,时间计算是日常开发中常见的任务,特别是在处理用户界面交互或者数据处理时。本文将详细讲解如何在JavaScript中进行日期的加减运算,以及如何返回当前时间后一个星期的日期,并确保结果以"yyyy-MM-...

    时间-日期 时间-日期

    - **JavaScript中的Date对象**:虽然基本功能有限,但通过引入Moment.js或Luxon等第三方库,可以极大增强其处理日期和时间的能力。 ### 结论 时间和日期的处理看似简单,但在实际应用中却涉及众多细节和潜在陷阱。...

    js时间操作方法大全集锦完整版

    ### JavaScript 时间操作方法详解 #### 一、概述 在JavaScript中,`Date`对象提供了丰富的API来处理日期和时间相关的操作。这些API可以用来获取当前时间、格式化日期、进行日期计算等。本文将详细介绍`Date`对象...

    javascript的trim和日期时间格式化函数

    ### JavaScript中的Trim函数和日期时间格式化函数 在JavaScript中,字符串处理和日期操作是非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用自定义方法实现字符串的Trim功能以及日期...

    javascript的日期空间源代码

    本文将深入探讨JavaScript的日期空间源代码,以及如何使用JavaScript实现一个日期选择JS控件。 首先,JavaScript的`Date`对象是处理日期和时间的核心。它提供了一系列的方法和属性,允许我们创建、读取、操作和格式...

    日期,日期时间类型数据格式校验

    还有一些在线工具,如`date-fns`或`moment-timezone`,可以帮助开发者快速实现各种日期时间操作。 在数据分析中,日期和日期时间数据的预处理步骤包括清洗(去除无效值,如空值或错误格式)和标准化(统一所有数据...

    js日期代码非常全 实例

    JavaScript是Web开发中不可或缺的一部分,尤其在处理时间与日期的操作上。JS提供了内置的Date对象,可以帮助我们创建、操作和格式化日期。本资源“js日期代码非常全 实例”显然是一个包含各种JavaScript日期处理代码...

    js 时间转换 js format

    总结来说,JavaScript中的日期和时间处理涉及创建Date对象、格式化日期时间字符串以及计算日期时间差。掌握这些技能对于任何JavaScript开发者来说都是至关重要的,特别是在处理用户交互、数据记录或动态更新界面时。

    js计算两个日期相差几周

    在JavaScript中,日期对象(`Date`)提供了丰富的API来处理日期和时间相关的操作。日期对象可以用来获取当前日期和时间、解析特定格式的日期字符串,并执行日期之间的加减运算等。在本示例中,我们将通过创建日期...

    各种JS日期控件 还带阴历哦

    1. **JS日期控件**:JavaScript提供了内置的Date对象,可以用于创建、操作和格式化日期。开发者通常会基于这个对象构建更复杂的日期选择器,以提供更友好的用户体验。这些控件可能包括日历显示、时间选择、日期范围...

    JS非常好用的日期选择控件

    在JavaScript编程中,日期选择控件是网页交互中常见的元素,尤其在表单提交、日程安排或时间记录等场景中不可或缺。本资源提供了一个高效且易用的JS日期选择控件,它可以帮助开发者轻松地在网页上实现日期选择功能,...

    经常用到的javascript日期函数库啊

    为了简化这一过程,许多开发者选择利用自定义的日期函数库或者现有的第三方库来完成复杂的日期时间操作。本文将详细介绍一个实用的JavaScript日期函数库,包括其核心功能及使用方法。 #### 二、核心功能 根据提供...

    c#日期时间倒计时

    在C#编程中,日期和时间的倒...总的来说,C#提供了丰富的日期时间操作功能,实现倒计时功能并不复杂,关键在于理解和合理使用这些工具。通过以上步骤,你应该能够创建一个基本的日期时间倒计时程序,满足日常开发需求。

    带节日节气农历的js万年历日期控件

    本文将详细讲解一个重要的JavaScript(js)控件:带节日节气农历的万年历日期控件。这个控件集成了公历、农历、节日和节气,提供了一种全面的日历显示和选择功能。 首先,我们来理解“农历”。农历,又称阴历,是...

    地区日期时间显示

    在IT领域,地区日期时间显示是一项基础且重要的功能,它涉及到跨时区、多语言环境下的用户界面设计。地区指的是用户所在的地理位置,日期和时间则是我们日常生活和工作中不可或缺的信息元素。在开发软件或构建Web...

Global site tag (gtag.js) - Google Analytics