当前位置:编程学习 > JS >>

js中几个常用的时间日期处理函数(1/2)

一、把字符串转换为日期对象
  有时需要把字符串转换为日期对象,但是ie下不支持new date(“2011-04-07”)这样实例化日期对象,ff下支持,所以写了一个扩展函数,用来把形如yyyy-mm-dd或者dd/mm/yyyy的字符串转换为日期对象。代码如下:
convertdate
1 /*
2 函数:把字符串转换为日期对象
3 参数:yyyy-mm-dd或dd/mm/yyyy形式的字符串
4 返回:date对象
5 注:ie下不支持直接实例化日期对象,如new date("2011-04-06")
6  */
7 date.prototype.convertdate = function (date) {
8 var flag = true;
9 var datearray = date.split("-");
10 if (datearray.length != 3) {
11 datearray = date.split("/");
12 if (datearray.length != 3) {
13 return null;
14 }
15 flag = false;
16 }
17 var newdate = new date();
18 if (flag) {
19 // month从0开始
20   newdate.setfullyear(datearray[0], datearray[1] - 1, datearray[2]);
21 }
22 else {
23 newdate.setfullyear(datearray[2], datearray[1] - 1, datearray[0]);
24 }
25 newdate.sethours(0, 0, 0);
26 return newdate;
27 };
 测试:
<script type="text/网页特效">
  document.writeln(new date().convertdate("7/12/2011"));
</script>
 输出:
  wed dec 07 2011 17:30:58 gmt+0800
二、计算两个日期之间的差值
这个函数可以计算两个日期之前的差值(毫秒/秒/分/小时/天),主要用到了gettime()函数和math.floor()函数,代码如下:
datediff
1 /*
2 函数:计算两个日期之间的差值
3 参数:date是日期对象
4 flag:ms-毫秒,s-秒,m-分,h-小时,d-天,m-月,y-年
5 返回:当前日期和date两个日期相差的毫秒/秒/分/小时/天
6  */
7 date.prototype.datediff = function (date, flag) {
8 var mscount;
9 var diff = this.gettime() - date.gettime();
10 switch (flag) {
11 case "ms":
12 mscount = 1;
13 break;
14 case "s":
15 mscount = 1000;
16 break;
17 case "m":
18 mscount = 60 * 1000;
19 break;
20 case "h":
21 mscount = 60 * 60 * 1000;
22 break;
23 case "d":
24 mscount = 24 * 60 * 60 * 1000;
25 break;
26 }
27 return math.floor(diff / mscount);
28 };
测试:
<script type="text/javascript">
  var d1 = new date().convertdate("2011-04-08");
  var d2 = new date().convertdate("2011-04-07");
  document.writeln(d1.datediff(d2, 'd'));
</script>
 结果:
  1
1 2
补充:网页制作,js教程 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,