散所有分求一个javascript的时间控件!请进来看说明!谢谢!

tianshei 2008-05-29 11:25:55
我现在有一个下拉列表框,两个text,下拉列表框显示 ("指定时间);("每日统计");("每周统计");("每月统计");("每年统计"),当选择指定时间的时候,两个text都可选,初始都显示当前时间,精确到时分秒,选择每日统计,第一个可选,第二个不能选,第二个自动显示第一个列表框的时间的23:59:59,例如我第一个text显示的是2008-5-29 10:25:26 那么第二个text自动显示2008-5-29 23:59:59 ,如果选择每周统计,第二个text自动显示第一个text的本星期六的日期的23:59:59,例如我第一个text显示的是2008-5-29 10:25:26 那么第二个text自动显示2008-5-31 23:59:59 ,如果选择每月统计,第二个text自动显示第一个text的本月的最后一天的23:59:59,例如我第一个text显示的是2008-5-29 10:25:26 那么第二个text自动显示2008-5-31 23:59:59 ,如果选择每年统计,第二个text自动显示第一个text的本年的日期的23:59:59,例如我第一个text显示的是2008-5-29 10:25:26 那么第二个text自动显示2008-12-31 23:59:59 !我的qq,22397941,有能做的但是不要分只要现金的也可以加我这个qq和我谈!
...全文
283 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 tianshei 的回复:]
哎,楼上的各位我都十分的感谢,但是现在我感觉情况是楼上各位写的明显跟我需求的相去甚远!所以我自己在努力学习JS,争取两天之内搞定!现在感觉JS也没我想的那么难!呵呵!再一次感谢各位!
[/Quote]
恩,JS写你这个确实不是很难
jhwcd 2008-05-30
  • 打赏
  • 举报
回复
一起加油!!!
sportboy2008 2008-05-30
  • 打赏
  • 举报
回复
加油,我也来学习学习!
tianshei 2008-05-30
  • 打赏
  • 举报
回复
哎,楼上的各位我都十分的感谢,但是现在我感觉情况是楼上各位写的明显跟我需求的相去甚远!所以我自己在努力学习JS,争取两天之内搞定!现在感觉JS也没我想的那么难!呵呵!再一次感谢各位!
tianshei 2008-05-29
  • 打赏
  • 举报
回复
忘了说我的邮箱!tianshei52@163.com
  • 打赏
  • 举报
回复
只需要简短的代码就可以实现
  • 打赏
  • 举报
回复
呵呵,很简单的事

很简单的一个JS触发
tianshei 2008-05-29
  • 打赏
  • 举报
回复
我是根本就不会js!但现在非得要js才行!
mingxuan3000 2008-05-29
  • 打赏
  • 举报
回复
只是麻烦 你有什么不会的?
s_liangchao1s 2008-05-29
  • 打赏
  • 举报
回复
先看看
tianshei 2008-05-29
  • 打赏
  • 举报
回复
我只能发100分的问题,但是我可以给你加!谢谢了!
Navymk 2008-05-29
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 Navymk 的回复:]
如果有兴趣,测试一下2000年/2004年/2008年的2月月末日,我很迷惑...三个闰年...今年多灾哦...
[/Quote]抽了根烟,想明白了,是困了~ :D
Navymk 2008-05-29
  • 打赏
  • 举报
回复
如果有兴趣,测试一下2000年/2004年/2008年的2月月末日,我很迷惑...三个闰年...今年多灾哦...
Navymk 2008-05-29
  • 打赏
  • 举报
回复
Look~

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">

function $(id){ return document.getElementById(id);}

/*-----------------------日期管理类----------------------*/
var DateManager = {
/*******************************/
/*CSDN.NavyMK
/*费了些心思,留个名吧。
/*******************************/
addDay : function(daycount, oldtime){ //添加天数方法,也可在指定日期类上添加
var dayM = 1000 * 60 * 60 * 24;
var _orignalTime = new Date(0);
if(oldtime) return new Date(oldtime - _orignalTime + dayM * daycount);
else return new Date(new Date() - _orignalTime + dayM * daycount);
}, setEndSeconds : function(now){
now.setHours(23);
now.setMinutes(59);
now.setSeconds(59);
return now;
}, getLastMonthDay : function(now){
if(!now) now = new Date();
var month = now.getMonth() + 1;
return new Date(now.getFullYear() + parseInt(month / 12), month % 12, 0, 23, 59, 59, 0);
}, getLastWeekDay : function(now, offset){ //返回周末一天。js中周日为最后一天,offset为修正值。如要取周六可设置offset = -1.如果周跨月份,返回月末日。
if(!now) now = new Date();
if(!offset) offset = 0;
var customDate = DateManager.addDay(7 - now.getDay() + offset, now);
customDate = customDate.getMonth() != now.getMonth() ? DateManager.getLastMonthDay(now) : customDate;
return DateManager.setEndSeconds(customDate);
}, getLastYearDay : function(now){ //@#$%^...
if(!now) now = new Date();
return new Date(now.getFullYear(), 11, 31, 23, 59, 59, 0);
}, dateFormat : function(date){ //简单格式化时间,方便调试
try{
var dateSplit = arguments[1] ? arguments[1] : "-";
var timeSplit = arguments[2] ? arguments[2] : ":";
var Split = arguments[2] ? arguments[2] : " ";
return [
[date.getFullYear(), date.getMonth() + 1, date.getDate()].join(dateSplit),
[date.getHours(), date.getMinutes(), date.getSeconds()].join(timeSplit)
].join(Split);
} catch(err) {
return DateManager.dateFormat(new Date(0)); //如果date不是时间对象,返回初始值
}
}
}
/*-----------------------具体处理部分---------------------------*/
//返回值
function choose(type, now){
if(!now) now = new Date();
switch(type){
case 1:
return [DateManager.dateFormat(now), DateManager.dateFormat(DateManager.setEndSeconds(now))];
case 2:
return [DateManager.dateFormat(now), DateManager.dateFormat(DateManager.getLastWeekDay(now, -1))]; //周6
case 3:
return [DateManager.dateFormat(now), DateManager.dateFormat(DateManager.getLastMonthDay(now))]; //月末
case 4:
return [DateManager.dateFormat(now), DateManager.dateFormat(DateManager.getLastYearDay(now))]; //年末
default:
return false;
}
}
function setValue(idx, now){
if(!now) now = new Date();
var vals = choose(idx, now);
if(vals){
$("v1").value = vals[0];
var v2 = $("v2");
v2.value = vals[1];
v2.disabled = idx > 1;
} else {
$("v1").value = "";
$("v2").value = "";
}
}
//如果客户端修改了v1的值,则根据值日期自动取得相关数据。该例没有日期格式化程序,注意日期和时间格式与预设统一
function whenCustomChange(){
var sel = $("sel");
var date = $("v1").value.split(" ")[0].split("-");
var time = $("v1").value.split(" ")[1].split(":");
var customDate = new Date(date[0], parseInt(date[1]) - 1, date[2], time[0], time[1], time[2]);
setValue($("sel").selectedIndex, customDate);
}
</script>
</head>
<body>
<select name="sel" id="sel" onchange="setValue(this.selectedIndex)">
<option>--指定时间--</option>
<option>每日统计</option>
<option>每周统计</option>
<option>每月统计</option>
<option>每年统计</option>
</select>
<input name="v1" type="text" id="v1" size="20" onchange="whenCustomChange()" />
-
<input name="v2" type="text" id="v2" size="20" />
</body>
</html>

DateManager这个类可以复用的.
  • 打赏
  • 举报
回复
呵呵,这次提问比第一复杂多了
  • 打赏
  • 举报
回复
哎,我想你要表达的意思是当前时间所在周的周一的日期吧
  • 打赏
  • 举报
回复
....

估计LZ自己都迷糊了

比如现在我选择的是按周统计,我第一个框输入的值是2008-5-29号,这时候,第一个框需要变化成5月25号,第二个框需要变化成5月31号,也就是总是第一个框是输入的时间的当前星期的星期天,第二个框是输入时间的星期的星期六。月,和年也是这样

什么叫第一个框输入的值是2008-5-29,这时候,第一个框需要变化成5月25号
让客户多此一举???
tianshei 2008-05-29
  • 打赏
  • 举报
回复
很感谢各位,现在有些问题,我估计是在提问的时候忽略了
问题1:第二个框的时间不能超过当前时间,就是说假如我现在选择的是按周统计,我现在第一个框的值是2008-5-26号,此时第一个框应该最终显示成5月25号,第二个框本来应该显示5月31号,但是今天才是5月29号,所以第二个框只能显示5月29号,月,年也是这样
问题2:第一个框的值可以变化,当我改变第一个框的值的时候哦,第二个框的值根据select 做相应的变动
问题3:比如现在我选择的是按周统计,我第一个框输入的值是2008-5-29号,这时候,第一个框需要变化成5月25号,第二个框需要变化成5月31号,也就是总是第一个框是输入的时间的当前星期的星期天,第二个框是输入时间的星期的星期六。月,和年也是这样
webmm 2008-05-29
  • 打赏
  • 举报
回复
你这个三星,不劳动...
  • 打赏
  • 举报
回复
不过代码还可以再短!
楼上几位加油,精简下你们的代码
加载更多回复(9)

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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