`

Date 学习

 
阅读更多

 

固定日期的定义

var date1 = new Date();
//注意月份为6 为7月
var date2 = new Date(2013,6,14);

var date3 = new Date(2013,11,14,0,0,0);

var endTime = new Date(Date.parse('2013-12-20'.replace(/-/g,"/")));

 

//返回日期 相差天数 

var getDatePeriod = function(start,finish){
   //return Math.abs(start*1-finish*1)/60/60/1000/24; //返回带有小数的天数
   
   return Math.floor(Math.abs(start*1-finish*1)/60/60/1000/24);//返回天数 只有整数
}

 

 

//返回当前日期的第一天 

var getFirstDateInMonth= function(date){

    return new Date(date.getFullYear(),date.getMonth(),1);

}

 

//返回当前月的最后一天  ,   天=0  为最后一天

 

var getLastDateInMonth= function(date){
    return new Date(date.getFullYear(),date.getMonth()+1,0);
}

 

//取出 出它所在季度的第一天 

var getFirstDateInQuarter= function(date){
    return new Date(date.getFullYear(),~~(date.getMonth()/3)*3,1);
}

 

//求出它所在季度的最后一天

var getLastDateInQuarter= function(date){
    return new Date(date.getFullYear(),~~(date.getMonth()/3)*3+3,0);
} 

 

//判断闰年    平年的二月是28天,闰年的二月是29天。  二月29号就是闰年

Date.prototype.isLeapYear = function()   {  
     return new Date(this.getFullYear(),2,0).getDate() == 29;
}
 

 

// 某个月有多少天

function daysInMonth ( year, month ) {
       var num = new Date();
       num.setFullYear( year, (month ==12) ? 0 : month , 0 );
       return num.getDate();
 }

 

 

// 2009/2/23(或者2009/02/23)合法

var test = function(str){
alert(str );
  var arr = str.split("/");
  var m = Number(arr[1])-1;
  var d = new Date(Number(arr[0]),m,Number(arr[2]) );
  alert(d );
  
  if(isNaN(d))
  {
 // alert("判断非数字1");
  return false;
  }
  if(isNaN(d.getDate())){
 // alert("判断非数字1");
  return false;
  }
    
  return d.getMonth() === m;
}

 

   

	/********根据一个日期求得星期,如'2009-6-21' return 0(星期日)***********/
	var get_day = function (strDate){
	    var f = strDate.replace(/-/g,'/');
	   
	    f = new Date(f).getDay();
	    return "星期"+"天一二三四五六".split('')[f]
	}
	writeData(get_day('2013-8-21') )

	var now = new Date()
	var currentMonth = now.getMonth() +1 //获得当前的月份
	var nextMonth = now.getMonth()+2 //获得下一个月的月份
	writeData("当前月份:"+currentMonth+"   nextMonth: "+nextMonth );

	//用javascript取得某一年的第一个星期一的日期 
	function get(year) {
	    var d = new Date(year, 1, 1);
	    var day = d.getDay(); //获取1月1号是星期几
	    d.setDate((8 - day) % 7 + 1);
	    return d;
	}
	writeData("<br>某一年的第一个星期一日期 :"+get(2013));
	
	//求前 n 天或者后 n 天的日期(用xxxx-xx-xx表示)
	var showdate = function(n){
	    var d = new Date();
	    d.setDate(d.getDate()+n);
	    //或者 d = d.getFullYear() + "-" +  (d.getMonth()+1) + "-" + d.getDate();
	     //d = d.toLocaleDateString();   中文格式的
	    d = d.toLocaleDateString().replace(/[\u4e00-\u9fa5]/g,'-').replace(/-$/,'')    
	    return d;
	}
	
	writeData("<br>"+"今天是:"+showdate(0));
	writeData("<br>"+"昨天是:"+showdate(-1) );
	writeData("<br>"+"明天是:"+showdate(1));
	writeData("<br>"+"10天前是:"+showdate(-10) );
	writeData("<br>"+"8天后是:"+showdate(8));
	
	//将2005-8-5转换成2005-08-05格式 
	var strDate = '2005-8-5'; 
	writeData("<br>"+ strDate.replace(/\b(\w)\b/g, '0$1') );
	
	
	
	// 对Date的扩展,将 Date 转化为指定格式的String 
	// 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, 
	// 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) 
	// 例子: 
	// (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
	// (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
	Date.prototype.Format = function(fmt) { //@author: meizz 
	    var o = { 
	        "M+" : this.getMonth()+1,                 //月份 
	        "d+" : this.getDate(),                    //日 
	        "h+" : this.getHours(),                   //小时 
	        "m+" : this.getMinutes(),                 //分 
	        "s+" : this.getSeconds(),                 //秒 
	        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
	        "S"  : this.getMilliseconds()             //毫秒 
	    };
		//匹配年份,把年替换成真正的数字 
	    if(/(y+)/.test(fmt)) 
	        fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
		//writeData("<br>========="+ RegExp.$1 +this.getFullYear()+"   "+fmt);
		
		//替换月份,把月份替换成真正的数字显示
	    for(var k in o)
	        if(new RegExp("("+ k +")").test(fmt)) 
	            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length))); 
	    return fmt; 
	} 
	
	
	var date = new Date();
	writeData("<br>"+  date.Format('yyyy-MM-dd')  );

 

 

 

 

 

 

 

 

 

 测试

writeData(date1  +"  <br>" + date2);

writeData(" 时间差 ="+getDatePeriod( date1 , date2 ) +"  <br> 第一天 = " + getFirstDateInMonth(date1 )+ "  <br>    ");

writeData("这个月的最后一天    ="+getLastDateInMonth( date1 )+" "  );

writeData("出它所在季度的第一天 = "+getFirstDateInQuarter( date1 )+" "  );

writeData("出它所在季度的最后一天 =  "+getLastDateInQuarter( date1 )+" "  );

writeData("日期 = "+date3  +" "  );

writeData("日期 = "+daysInMonth(2013,0)  +" "  );

writeData("日期 = "+test("2009/1/33")  +" "  );

 

 

 

分享到:
评论

相关推荐

    java Date 学习总结

    ### Java Date 学习总结 在Java开发过程中,时间日期处理是常见的需求之一。本文将对`java.util.Date`、`java.util.Calendar`以及`java.text.SimpleDateFormat`等类的使用进行详细总结,帮助读者更好地理解和掌握...

    BigData大数据学习笔记

    BigData大数据学习笔记

    date_input插件

    你可以通过查看官方文档或下载的压缩包中的示例文件(jQuery date_input(日期选择))来进一步学习和实践。 总结,jQuery date_input 插件是网页开发中处理日期输入的得力助手,其易用性、灵活性和良好的兼容性使其...

    wui-date.7z

    为了方便开发者使用和学习,wui-date通常会配备详细的使用文档和示例代码,同时,作为一个开源项目,它很可能有一个活跃的开发者社区,用户可以在其中交流经验、提问和分享解决方案。 8. **持续更新和维护**: ...

    date.zip_matlab中date函数

    在MATLAB编程环境中,日期和时间的处理是十分常见的任务,`date`函数就是其中的一个关键工具,用于处理和格式化日期与时间数据。...通过不断学习和实践,你将能够熟练运用这些工具,提升你的MATLAB编程技能。

    util包里的Date类转换为sql包里的Date

    通过对以上两种转换方法的学习,我们可以看到从`java.util.Date`到`java.sql.Date`的转换并不复杂。选择哪种方法取决于具体的应用场景和需求。通常情况下,直接使用构造函数进行转换更为简洁高效;而通过字符串进行...

    跟我学习javascript的Date对象

    JavaScript中的Date对象是用于处理日期和时间的核心组件。在JavaScript中,Date对象提供了一系列的方法来创建、修改和读取日期和时间。这篇文章将深入探讨Date对象的各个方面,帮助你更好地理解和应用这个对象。 1....

    Date日期操作工具类

    在Java编程中,Date类是处理日期和时间的基础类,但在实际开发中,由于Date类本身的API设计并不十分友好,通常我们会...通过学习和使用这个工具类,开发者可以更高效地处理日期相关的任务,而无需关心底层复杂的细节。

    NextDate函数小程序

    NextDate函数小程序是一款用于学习和测试的程序,主要聚焦于日期处理功能,特别是与`NextDate`相关的算法和逻辑。这个小程序可能包含了源代码、测试用例和其他相关文档,帮助用户理解和掌握如何计算下一个日期。在IT...

    jQuery Date Range Picker

    **jQuery Date Range Picker** 是一个基于JavaScript库jQuery的日期范围选择插件,它允许用户在网页上方便地选择两个日期之间...通过学习和掌握它的用法和配置选项,你可以根据项目需求定制出符合用户体验的日历插件。

    SHELL DATE 命令详解

    通过本文对 `date` 命令的详细介绍,我们不仅了解了它的基本用法,还学习了如何利用不同的格式化标记和参数来满足各种需求。`date` 命令是 Linux 和 Unix 系统中极其重要的工具之一,掌握它将极大地提高我们的工作...

    Java-Date 类的学习总结.pdf

    Java-Date 类的学习总结 Date 类是 Java 语言中用于处理日期和时间的类别,在实际开发中经常会用到。下面是对 Date 类的学习总结,包括计算某一月份的最大天数、Calendar 和 Date 的转化、把字符串转化为 java.util...

    Java-Date 类的学习总结.docx

    Java Date 类学习总结 Java Date 类是 Java 语言中用于处理日期和时间的类,可以用来计算某一月份的最大天数、将字符串转化为日期、格式化输出日期时间等。本文将对 Java Date 类的常用方法进行总结。 1. 计算某一...

    MyEclipse Date类练习

    在Java编程语言中,`Date`类是处理时间的基础组件,而`Calendar`类则提供了更高级的时间操作功能。...同时,还可以学习如何在实际项目中处理日期和时间,这对于任何Java开发者来说都是必不可少的技能。

    20news-bydate.tar.gz解压后的所有数据汇总

    《20news-bydate.tar.gz解压后的所有数据汇总——深度探索文本分类与机器学习》 在信息技术领域,数据是推动研究和应用发展的关键。20news-bydate数据集是机器学习领域中一个广泛使用的经典文本分类数据集,主要...

    My97Date 日历控件

    在【jb51.net】这个压缩包文件中,可能包含了My97Date日历控件的源代码、文档、示例以及安装指南等资源,供开发者学习和使用。通过详细阅读这些资料,开发者可以更好地理解和掌握如何在自己的项目中有效利用这款强大...

    date_c++_

    "date_c++_"这个项目可能就是针对这个问题,提供了一个自定义的C++日期类实现。下面将详细讨论如何在C++中实现日期类以及相关的知识点。 首先,我们可以从头开始创建一个日期类。基础结构可能包括私有成员变量来...

    date4j-source

    `date4j`是一个轻量级的Java日期和时间库,它提供了对日期和时间操作的灵活处理。这个源代码压缩包包含`date4j`的源代码,这对于开发者来说非常有价值,因为可以深入理解其内部工作原理,进行自定义扩展或者调试。...

    总结date对象

    06总结Date对象的方法.html

Global site tag (gtag.js) - Google Analytics