关于日期的常见操作
http://community.csdn.net//Expert/TopicView2.asp?id=4360247&datebasetype=now
js FAQ贴
http://community.csdn.net//Expert/TopicView2.asp?id=4356360&datebasetype=now
DHTML手册,js手册,dom手册下载
http://community.csdn.net//Expert/TopicView2.asp?id=4356325&datebasetype=now
综合整理之后的PowerDate .方便处理常日公历日期操作.
常在js版转,发现有很多问题问来问去N多遍.于是有这个想法,把常见的问题汇总成一个贴子.
我个人所拥有的代码相当有限,所以要大家群策群力共同来维护这个帖子.
回帖时注意:
请先查看前面回帖,已经避免发过的东西重复发布.
尽可能一次性尽可能多的贴代码,不要帖子很长但内容很少.
要加比较明朗的注释,不要让人望而怯步,不知所云.
如果该贴有较好的效应,请大梅同志开恩置顶.
JS 对 cookie 操作
function setCookie(name,value)
{
var Days = 30; //此 cookie 将被保存 30 天
var exp = new Date(); //new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape(value) +";expires="+ exp.toGMTString();
}
function getCookie(name)
{
var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
if(arr != null) return unescape(arr[2]); return null;
}
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie=name +"="+cval+";expires="+exp.toGMTString();
}
//两端去空格函数
function trim(str) {
return str.replace(/(^/s*)|(/s*$)/g,"");
}
Ms XmlDom 异步装载Xml文件
放在这里,算作是资源备份吧。
URL:
JS时间处理
时间对象是一个我们经常要用到的对象,无论是做时间输出、时间判断等操作时都与这个对象离不开。除开JavaScript中的时间对象外,在VbScript中也有许多的时间对象,而且非常好用。下面还是按照我们的流程来进行讲解。
它是一个内置对象——而不是其它对象的属性,允许用户执行各种使用日期和时间的过程。
方法:分为得到时间方法、设置时间方法和转换时间方法
得到时间方法:
getDate() 查看Date对象并返回日期
getDay() 返回星期几
getHours() 返回小时数
getMinutes() 返回分钟数
getMonth() 返回月份值
getSeconds() 返回秒数
getTime() 返回完整的时间
getYear() 返回年份
设置时间方法:
setDate() 改变Date对象的日期
setHours() 改变小时数
setMinutes() 改变分钟数
setMonth() 改变月份
setSeconds() 改变秒数
setTime() 改变完整的时间
setYear() 改变年份
转换时间方法:
toGMTString() 把Date对象的日期(一个数值)转变成一个GMT时间字符串,返回类似下面的值:Weds,15 June l997 14:02:02 GMT(精确的格式依赖于计算机上所运行的操作系统而变)
toLocaleString() 把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格式
UTC() 使用Date UTC(年、月、日、时、分、秒),以自从1970年1月1日00:00:00(其中时、分、秒是可选的)以来的毫秒数的形式返回日期
几个需要注意的地方:
1、得到日期和年和设置日期和年时间,其中很怪的问题就是不能对月份进行设置(比较的怪):
2、获得年的时候最好用getFullYear()方法来做
3、由于针对月份,JS是从0开始的,因此需要对月份进行操作时要加1
下面是几个关于时间的经典而且经常会用到的例子,希望对大家会有提高的。谢谢继续关注该帖子。。。
1、将2005-8-5转换成2005-08-05格式
2、得到间隔天数
3、得到间隔时间
4、得到今天的日期
6、数字日期转汉字
-------------------------------------------------------------------- DWASearch Form JS header function SetValue() { var todays = new Date(); var years = todays.getFullYear(); var lastyears=years-1; var months = todays.getMonth()+1; var mdays = todays.getDate(); var endDates = years + "-" + months + "-" + mdays; /endDates var stDates = lastyears + "-" + months + "-" + mdays; /stDates document.all.endDate.value=endDates; document.all.startDate.value=stDates; var pasttwoyears=years-2; var pasttwoyeardate=pasttwoyears+ "-" + months + "-" + mdays; var pastthreeyears=years-3; var pastthreeyeardate=pastthreeyears+ "-" + months + "-" + mdays; document.all.Today.value=endDates; document.all.Lasttwelvemonths.value=stDates; document.all.Pasttwoyear.value=pasttwoyeardate; document.all.Pastthreeyear.value=pastthreeyeardate; //last week function showdate(n) { var uom = new Date(new Date()-0+n*86400000); uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate(); return uom; } document.all.PastWeek.value=showdate(-7); // .Lastthreemonths. Lastsixmonths function makeArray() { for (i = 0; i=beforedaycount){//如果本月天数大于前一个月 if(today.getDate()>=beforedaycount){//如果当前的天数大于上个月的天数,那么上个月返回末 before.setDate(beforedaycount); } else{//否则返回上个月相同号数的一天 before.setDate(today.getDate()); } } else{ if(today.getDate() == todaydaycount){//如果到了本月末尾,返回上月的最后一天 before.setDate(beforedaycount); } else{ before.setDate(today.getDate())//否则返回上个月相同号数的一天 } } return before; } } /* Date.prototype.addMonth = function(num){if(!isNaN(num))this.setMonth(this.getMonth() + parseInt(num));return this;} //创建date var datedd = new Date(); //date.addMonth(1);//加1个月 //date.addMonth(10);//加10个月 //date.addMonth(-1);//减1个月 document.all.Lastthreemonths.value=datedd.addMonth(-3); document.all.Lastsixmonths.value=datedd.addMonth(-3); function getNextYear() { var d = new Date(); return new Date(d.getFullYear(),d.getMonth()-1,d.getDate()); } function makeArray() { for (i = 0; i
===================again==============================
function SetValue()
{
var todays = new Date();
var years = todays.getFullYear();
var lastyears=years-1;
var months = todays.getMonth()+1;
var mdays = todays.getDate();
var endDates = years + "-" + months + "-" + mdays; /endDates
var stDates = lastyears + "-" + months + "-" + mdays; /stDates
document.all.endDate.value=endDates;
document.all.startDate.value=stDates;
var pasttwoyears=years-2;
var pasttwoyeardate=pasttwoyears+ "-" + months + "-" + mdays;
var pastthreeyears=years-3;
var pastthreeyeardate=pastthreeyears+ "-" + months + "-" + mdays;
document.all.Today.value=endDates;
document.all.Lasttwelvemonths.value=stDates;
document.all.Pasttwoyear.value=pasttwoyeardate;
document.all.Pastthreeyear.value=pastthreeyeardate;
//last week
function showdate(n)
{
var uom = new Date(new Date()-0+n*86400000);
uom = uom.getFullYear() + "-" + (uom.getMonth()+1) + "-" + uom.getDate();
return uom;
}
document.all.PastWeek.value=showdate(-7);
// .Lastthreemonths. Lastsixmonths
function makeArray() {
for (i = 0; i
}
var months = new makeArray('1','2','3','4',
'5','6','7','8','9',
'10','11','12');
function y2k(number) { return (number < 1000) ? number + 1900 : number; }
function monthsahead(noofmonths) {
var today = new Date();
var date = new Date(today.getYear(),today.getMonth() + noofmonths,today.getDate(),today.getHours(),today.getMinutes(),today.getSeconds())
return y2k(date.getYear())+'-'+months[date.getMonth() + 1]+'-'+date.getDate();
}
document.all.Lastthreemonths.value=monthsahead(-3);
document.all.Lastsixmonths.value=monthsahead(-6);
var BeforeMonthDay=getBeforeMonthDay();
var BeforeMonthDayyears = BeforeMonthDay.getFullYear();
var BeforeMonthDaymonths = BeforeMonthDay.getMonth()+1;
var BeforeMonthDaydays = BeforeMonthDay.getDate();
var BeforeMonthDayre = BeforeMonthDayyears + "-" + BeforeMonthDaymonths + "-" + BeforeMonthDaydays; /endDates
document.all.PastMonths.value=BeforeMonthDayre;
function getBeforeMonthDay(){
var msecondsPerMinute = 1000 * 60;
var msecondsPerHour = msecondsPerMinute * 60;
var msecondsPerDay = msecondsPerHour * 24;
var today = new Date();//今天的日期
today.setMonth(today.getMonth());
//today.setDate(30);
var temptoday = new Date(today);//用来计算的这个月的1号
temptoday.setDate(1);
var before = new Date(today);//用来保存前一个月的日期
before.setMonth(today.getMonth()-1);
var tempbefore = new Date(before);//用来计算的前一个月的1号
tempbefore.setDate(1);
var next = new Date(today);//下个月,用来计算本月有多少天
next.setMonth(today.getMonth()+1);
next.setDate(1);
var beforedaycount =Math.floor((temptoday-tempbefore)/msecondsPerDay);//计算前一个月天数
var todaydaycount =Math.floor((temptoday-tempbefore)/msecondsPerDay);//计算本月差额天数
if(todaydaycount>=beforedaycount){//如果本月天数大于前一个月
if(today.getDate()>=beforedaycount){//如果当前的天数大于上个月的天数,那么上个月返回末
before.setDate(beforedaycount);
}
else{//否则返回上个月相同号数的一天
before.setDate(today.getDate());
}
}
else{
if(today.getDate() == todaydaycount){//如果到了本月末尾,返回上月的最后一天
before.setDate(beforedaycount);
}
else{
before.setDate(today.getDate())//否则返回上个月相同号数的一天
}
}
return before;
}
}