1. js如何控制 开始日期 到 结束日期 跨月的判断
function checkStartAndEndDay(startTime,endTime){
if (startTime == null || endTime == null || startTime== ""
|| endTime == "") {
alert("请选择起止时间");
return false;
}
var regS = new RegExp("-", "gi");
var date1 = startTime.replace(regS, "/");
var date2 = endTime.replace(regS, "/");
var st = new Date(Date.parse(date1));
var et = new Date(Date.parse(date2));
if (et < st) {
alert("结束时间要大于开始时间!");
return false;
}
var diff = et.getTime() - st.getTime();
var days = Math.floor(diff / (1000 * 60 * 60 * 24));
if (days >= 7) {
alert("时间跨度不能超过7天");
return false;
}
return true;
}
这上面的代码可以解决你要的开始时间不能小于结束时间的问题,判断跨月的js如下:
function check_sub()
{
var begin_ = document.getElementById('startTime').value;
var end_ = document.getElementById('endTime').value;
var st=startTime.split("-"); //将时间分成数组然后比较年、月份的大小
var et=endTime.split("-");
if(st[0]!=et[0]){
alert("抱歉,暂时不提供跨年查询");
return false;
}else{
if(st[1]!=et[1]){
alert("抱歉,暂时不提供跨月查询");
return false;
}
}
}
这上面的可以解决跨月的判断,你看下,应该就没问题了
2. 鎬庝箞鐢╦s楠岃瘉閫夋嫨鐨勬棩鏈熷湪浠婂ぉ涔嬪墠
<!DOCTYPEHTML>
<html>
<head>
<metacharset="UTF-8"/>
<title>last.html</title>
<style>
</style>
<script>
functionchkDate()
{
varpdate=document.getElementById('pdate');
vard=newDate;
vartoday=newDate(d.getFullYear(),d.getMonth(),d.getDate());
varreg=/d+/g;
vartemp=pdate.value.match(reg);
varfoday=newDate(temp[0],parseInt(temp[1])-1,temp[2]);
if(foday>today)
{
alert('鍦ㄤ粖澶╀箣鍚');
}
elseif(foday<today)
{
alert('鍦ㄤ粖澶╀箣鍓');
}
else
{
alert('灏辨槸浠婂ぉ');
}
}
</script>
</head>
<body>
<label>Date<inputtype="date"id="pdate"name="pdate"
value="2014-09-01"onchange="chkDate()"/></label>
</body>
</html>
3. js如何去当前时间前一天的时间和后一天
functionGetDateStr(AddDayCount){
vardd=newDate();
dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
vary=dd.getFullYear();
varm=dd.getMonth()+1;//获取当前月份的日期
vard=dd.getDate();
returny+"-"+m+"-"+d;
}
document.write("前天:内"+GetDateStr(-2));
document.write("<br/>昨天:"+GetDateStr(-1));
document.write("<br/>今天:"+GetDateStr(0));
document.write("<br/>明天:"+GetDateStr(1));
document.write("<br/>后天容:"+GetDateStr(2));
document.write("<br/>大后天:"+GetDateStr(3));
参考下
4. 用js实现:输入日期,判断输入日期是否在当前日期第二天起的7天内,如果没有,提示正确的日期区间
Code:<script language="javascript">
//Format yyy-mm-dd
function dateCompare(date1,date2){
date1 = date1.replace(/\-/gi,"/");
date2 = date2.replace(/\-/gi,"/");
var time1 = new Date(date1).getTime();
var time2 = new Date(date2).getTime();
if(time1 > time2){
return 1;
}else if(time1 == time2){
return 2;
}else{
return 3;
}
}//eg
alert(dateCompare("2011-08-27","2011-08-31"));
alert(dateCompare("2011-08-27","2011-8-08"));
alert(dateCompare("2011-8-27","2011-08-28"));
</script> 代码中有三个比较样例,录入的日期保证是年月日即可,月、日不足两位的和一位的表达方式均兼容,你的需求只需要重复两次调用dateCompare即可判断出来,不过你需要控制日期的输入为年月日,因为不同国家和地域(大陆和香港的日期格式就有不同)的日期格式不一致
5. 求高手的JavaScript日期校验。要求起始日期不得大于结束日期。日期格式为:dd/mm/yyyy
<script type="text/javascript">
function today(){
var dd, ss="";
dd = new Date();
ss += dd.getYear()+"/";
ss += (dd.getMonth() + 1) + "/";
ss += dd.getDate();
return ss;
}
function comptime(beginTime,endTime){
var beginTimes=beginTime.substring(0,10).split('/');
var endTimes=endTime.substring(0,10).split('/');
beginTime=beginTimes[1]+'/'+beginTimes[2]+'/'+beginTimes[0]+' '+beginTime.substring(10,19);
endTime=endTimes[1]+'/'+endTimes[2]+'/'+endTimes[0]+' '+endTime.substring(10,19);
var a =(Date.parse(endTime)-Date.parse(beginTime))/3600/1000;
if(a<0){
return -1;
}else if (a>0){
return 1;
}else if (a==0){
return 0;
}else{
return 'exception'
}
}
alert(comptime("2010/01/01",today()));
alert(comptime("2010/08/01",today()));
</script>
++++++++++++++++++++++++++++++++++++++++
我已经写出了时间对比的函数,你只需要把想要对比的时间放入函数跑一下就行了,有更多问题,可以直接HI我,。。。
至于楼主的时间格式,可以在这个JS里边改下时间顺序即可。。。。
记得加分。。。
6. js验证开始日期不能大于结束日期
if((date-picker-input-1.value * 1) > (date-picker-input-2.value * 1) ){
console.log('开始日期不能大于结束日期')
return false
}
if((date-picker-input-1.value.getTime()) > ((date-picker-input-2.value.getTime()) ){
console.log('开始日期不能大于结束日期')
return false
}
if((date-picker-input-1.value.valueOf()) > ((date-picker-input-2.value.valueOf()) ){
console.log('开始日期不能大于结束日期')
return false
}
还有第四种写法 忘记了 说白了就是先转成number类型然后去比对 至于乘以 1 这样的写法就相当于是做了四则运算 那只有number类型才可以的 他此时会自动的转Number类型
7. js日期校验
1年 ? 1年的判断依据呢?
我是这样想的:
1年的话,那么到明年的今天就可以了嘛。如果是在明年的今天前,那么就是在1年内,否则就超过1年了。看代码:
vardate1=newDate('2012-02-17');//开始日期
vardate2=newDate('2013-01-25');//结束日期
vardate3=newDate(date1);//这个日期会设置成明年的今天
date3.setFullYear(date1.getFullYear()+1);//1年内的最后一天
vardiff=date3-date2;//算结束与明年的今天的日期差
if(diff==0){
//结束日期是明年的今天
}elseif(diff<0){
//结束日期在明年的今天后
}else{
//结束日期在明年的今天前,也就是你说的1年内了
}