参考别人的代码整理的一些 javascript 有关日期时间的一些知识

最近经常用到js的日期时间,遇到了几种问题,参考别人的代码整理了一下:

 

一:比较两个日期的相差天数

<script language="JavaScript">

 //计算天数差的函数,通用
   function DateDiff(sDate1,sDate2){ //sDate1和sDate2是2002-12-18格式
   var aDate, oDate1, oDate2, iDays ;
   aDate = sDate1.split("-") ;
   oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]) ;//转换为12-18-2002格式
   aDate = sDate2.split("-") ;
   oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
   iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 /24) ;//把相差的毫秒数转换为天数
   return iDays ;
   }

function getNumber(){

var date1="2011-07-19";

var date2="2011-08-09";

var number=DateDiff(date1,date2);

alert(number>0?number:-number);

}

</script>

 

二:时间转换

1,时间字符串转换成date

<1>

var   strArray=str.split("   "); 

var   strDate=strArray[0].split("-"); 

var   strTime=strArray[1].split(":");

var   a=new   Date(strDate[0],(strDate[1]-parseInt(1)),strDate[2],strTime[0],strTime[1],strTime[2])

<2>

var   s   =   "2005-12-15   09:41:30"

var   d   =   new   Date(Date.parse(s.replace(/-/g,   "/")));  

 

三:时间格式化

//时间格式转换方法
 function getFormat(time,format){
   Date.prototype.format = function(format){
   var o = {
   "M+" : this.getMonth()+1, //month
   "d+" : this.getDate(),    //day
   "h+" : this.getHours(),   //hour
   "m+" : this.getMinutes(), //minute
   "s+" : this.getSeconds(), //second
   "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
   "S" : this.getMilliseconds() //millisecond  
   }
   if(/(y+)/.test(format))
   format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));
   for(var k in o)
    if(new RegExp("("+ k +")").test(format))
    format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));
    return format;
    }
   var thisDate=time.format(format);
   return thisDate;
 }

//调用

var  newtime=getFormat(new Date(),"yyyy/MM/dd HH:mm");

var  newtime1=getFormat(new Date(),"yyyy-MM-dd HH:mm");

var  newtime2=getFormat(new Date(),"yyyy-MM-dd");

var  newtime3=getFormat(new Date(),"hh:mm");

 像这样想转什么格式就转什么格式

四:上下翻星期

//在页面上得到checktime,注意checktime是动态

<%

 String checktime=HttpUtil.getString(request,"checktime","");
   if(checktime==null)
   {
    checktime="";
   }
   Long timestamp=new Date().getTime();
   SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd");
   if(!checktime.equals(""))
   {
    timestamp=dateFormat.parse(checktime).getTime();
   }

%>

<script>

//得到下限天或者按‘上一周‘按钮时得到其下限时间
  function getdownday(num){
   //得到当天日期
   var dtime=new Date();
   dtime.setTime(<%=timestamp%>);
   dtime.setDate(dtime.getDate()-(dtime.getDay()-1)-num);
   //得到下限时间或者上一周的下限时间
   var downtime=dtime.getFullYear()+"/"+(dtime.getMonth()+1)+"/"+dtime.getDate();
   return downtime;
  }
  //得到上限天或者按‘下一周’按钮得到其下限时间
  function getupday(num){
   var dtime=new Date();
   dtime.setTime(<%=timestamp%>);
   var d=dtime.getDay();
   dtime.setDate(dtime.getDate()+(7-d)+num);
   //得到上限时间或者下一周的下限时间
   var uptime=dtime.getFullYear()+"/"+(dtime.getMonth()+1)+"/"+dtime.getDate();
   return uptime;
  }

</script>

html:

<input type="button“ value

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值