各位高手注意了!!!!js日期急难问题!!!!

saily_girl 2007-08-01 10:17:52
我现在 做了一个输入框,日期是自己手写进去的,格式为20070801,然后我点下一个输入框,可以让刚才那个输入框的日期自动+1,例如20070802,当然要有对月对日和对年的判断,不能有13月,32日等,还要考虑闰年的问题
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
薛定谔之死猫 2007-08-02
  • 打赏
  • 举报
回复
找个js日历控件就能知道怎么弄啦
saily_girl 2007-08-02
  • 打赏
  • 举报
回复
什么意思
grass_12 2007-08-02
  • 打赏
  • 举报
回复
不是有js可以选日期的吗
axia6395 2007-08-01
  • 打赏
  • 举报
回复
var month = parseInt(curDate.substring(4,6),10);
axia6395 2007-08-01
  • 打赏
  • 举报
回复
我刚写的 没有验证 思路就如此了
axia6395 2007-08-01
  • 打赏
  • 举报
回复
上面的都少写了一天 不好意思
代码框架如下 有问题 你自己修正一下 我没有验证 有问题发邮件到lws.emmagee@163.com
function addOneDay(curDate)
{
var year = curDate.substring(0,4);

var month = parseInt(curDate.substring(6,6),10);

var day = parseInt(curDate.substring(6,8),10);

/*类似的添加验证输入的时间是不是非法的*/

if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if(day == 31)
{
if(month <10)
return year+"0"+month+"01";
else if(month == 10)
return year+"1101";
else
return addZero(parseInt(year+1))+"0101";
}
else
{
day += 1;

if(month <10)
{
if(day < 10)
return year+"0"+month+"0"+day;
else
return year+"0"+month+day;
}
else
{
if(day < 10)
return year+month+"0"+day;
else
return year+month+day;
}
}
}
else if(month == 4 || month == 6 || month == 9 || month == 11)
{
if(day == 30)
{
if(month <10)
return year+"0"+month+"01";
else
return year+"1201";
}
else
{
day += 1;

if(month <10)
{
if(day < 10)
return year+"0"+month+"0"+day;
else
return year+"0"+month+day;
}
else
{
if(day < 10)
return year+month+"0"+day;
else
return year+month+day;
}
}
else
{
var i_year = parseInt(year,10);

if(isLeapYear(i_year))//闰年
{
if(day == 29)
return year+"0301";
else
{
day += 1;

if(day < 10)
return year+"020"+day;
else
return year+"02"+day;
}
}
else
{
if(day == 28)
return year+"0301";
else
{
day += 1;

if(day < 10)
return year+"020"+day;
else
return year+"02"+day;
}
}
}
}

function addZero(year)
{
if(year < 10)
return "000"+year;
else if(year < 100)
return "00"+year;
else if(year < 1000)
return "0"+year;
else
return year;
}

//判断是否是闰年
function isLeapYear(year)
{
if(year%4 == 0)
{
if(year%100 == 0)
{
if(year%400 == 0)
return true;
else
return false;
}
else
return true;
}
else
return false;
}
saily_girl 2007-08-01
  • 打赏
  • 举报
回复
有完全点的代码吗
axia6395 2007-08-01
  • 打赏
  • 举报
回复
最简单也就是最复杂的办法 就是一个一个的验证呗 从月开始 如果是1 3 5 7 8 10 12,则验证最后日是不是30 如果是,将月加1,日为1;否则日加1 月不变化,如果是12月,日30的情况,就年加1 月为1 日为1 ,如果月4,6,9,11,则验证日是不是29,如果是,则月加1,日为1;否则日加1,月不变化,如果为2月,则验证是不是闰年,如果是则验证日期为29,否则28,
还有一个办法是转换成微秒

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧