js中date与String转换
来源:互联网 发布:阿里云备案拍照深圳 编辑:程序博客网 时间:2024/06/17 08:24
JS中字符转日期
var remindTime = "2008-04-02 10:08:44";
直接new Date(remindTime ) 即可。
1.比较常用的方法,但繁琐:
主要使用Date的构造方法:Date(int year , int month , int day)
<script>var str1 = "2009-8-9";var arr1 = str1.split("-");var date1 = new Date(arr1[0],parseInt(arr1[1])-1,arr1[2]);var str2 = "2009-8-4";var arr2 = str2.split("-");var date2 = new Date(arr2[0],parseInt(arr2[1])-1,arr2[2]);alert(date1>date2);//true</script>
2.简便方法:
var str = "2005-12-15"; var d = new Date(str.replace(/-/g, "/"));
/-/g是js的正则表达式,匹配划线的re = /pattern/[flags]用 "/ " 字符分隔模式 g (全文查找出现的所有 pattern) i (忽略大小写) m (多行查找)
Example:
<script> var s = "2010-09-11"; var s1 = "2010-09-12"; var d = new Date(s.replace(/-/g,"/")); var d1 = new Date(s1.replace(/-/g,"/")); var m = (d1.getTime()-d.getTime())/(1000*60*60); alert(m); //24 </script>
JS比较时间:
<script language="JavaScript"> //时间对比函数,如果a>b返回1,如果a<b返回-1,相等返回0 function comptime(a,b) { var dateA = new Date("1900/1/1 " + a); var dateB = new Date("1900/1/1 " + b); if(isNaN(dateA) || isNaN(dateB)) return null; if(dateA > dateB) return 1; if(dateA < dateB) return -1; return 0; } var timeStart = "3:20"; var timeEnd = "2:11"; if(comptime(timeStart,timeEnd) != -1) alert("开始时间必须小于结束时间!"); </script>
----------------------------------------------------------------------------------------------------------------------
1、获取几天后时间的几种方法:
(本来考虑用Calendar方法,后来才发现js中根本无法使用Calendar)
var dt = new Date(); lont time = dt.valueOf() //返回1970到现在的毫秒数 Long time = dt.getTime();//这就是距离1970年1月1日0点0分0秒的毫秒数 Lont time = System.currentTimeMillis());//与上面的相同 alert(new Date(1000*60*60*24 + dt.valueOf())) alert(new Date(1000*60*60*24 + date.getTime()))//一天后的日期
抽离为方法:
var DAY = 1000*60*60*24; Date.prototype.addDays = function(num){return new Date((num*DAY)+this.valueOf()); }window.onload=function(){var dt = new Date();alert(dt.addDays(2));}
此处注意new Date().valueOf()也可获得毫秒数,这个以前根本都没用过,呵呵
2、date类型转Str类型:
//var mths = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"];//var WEEKs =["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday","Saturday"];//var WEKs = [ "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" ];
1、常用方法
//日期转Strfunction toDDMMMYYYY(date) {var d = new Date(date.getTime());var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate().toString();var mmm = mths[d.getMonth()];var yyyy = d.getFullYear().toString(); //2011//var YY = YYYY.substr(2); // 11return dd + mmm + yyyy;}function toDDMMMYY(date) {var d = toDDMMMYYYY(date);return d.substring(0, 5) + d.substring(7, 9);}
这种方法限制死了最后的Str的格式,想要灵活使用,可用下面这种方法:
2、自己定义格式:
Date.prototype.parseStr = function(format) {var YYYY = this.getFullYear(); //2011var YY = YYYY.substr(2); // 11format = format.replaceAll("@YYYY@",YYYY);format = format.replaceAll("@YY@",YY);var M=this.getMonth()+1;var MM=(M<10)?"0"+M:M;var MMM=mths[M - 1];format=format.replaceAll("@MMM@",MMM);format=format.replaceAll("@MM@",MM);format=format.replaceAll("@M@",M);var D=this.getDate();var DD=(D<10)?"0"+D:D;format=format.replaceAll("@DD@",DD);format=format.replaceAll("@D@",D);var h=this.getHours();var hh=(h<10)?"0"+h:h;format=format.replaceAll("@hh@",hh);format=format.replaceAll("@h@",h);var m=this.getMinutes();var mm=(m<10)?"0"+m:m;format=format.replaceAll("@mm@",mm);format=format.replaceAll("@m@",m);var s=this.getSeconds();var ss=(s<10)?"0"+s:s;format=format.replaceAll("@ss@",ss);format=format.replaceAll("@s@",s);var dayOfWeek=this.getDay(); format=format.replaceAll("@WEEK@",WEEKs[dayOfWeek]);format=format.replaceAll("@WEK@",WEKs[dayOfWeek]);return format;}
使用时直接这样即可:
//var outdateStr = outdate.parseStr("@DD@-@MMM@-@YYYY@");
此处需注意一点:
js不提供replaceAll方法,只有replace方法 ,用for循环又有效率问题,最好的方法是用正则表达式
String.prototype.replaceAll = function (A,B){ var C=this;for (var i=0;i<C.length;i++){C=C.replace(A,B);}; return C; }
String.prototype.replaceAll = function(s1,s2){ return this.replace(new RegExp(s1,"gm"),s2); }
自己定义了replaceAll方法后就可以像上面一样用replaceAll了。
js中replace方法:
replace(regexp/substr,replacement)
<script>var str="Visit Microsoft!"alert(str.replace("Microsoft", "W3School")); //alert((str.replace(/Microsoft/, "W3School")); 也可以</script>
另:
由date求星期:
WEKs[date.getDay()];
- js中date与String转换
- js中date与String转换
- js中date与String转换
- js中date与String转换
- js中date和String转换
- JS中String类型转换Date类型
- JAVA中Date与String之间转换
- js中string转换为date,一句话即转!
- date类型与string转换
- String 与Date的转换
- Date与String相互转换!!
- date 与 String 相互转换
- java中string与date(日期)格式之间的转换
- java中string与date(日期)格式之间的转换
- java中string与date(日期)格式之间的转换
- java中String与Date的类型转换
- Flex 4中 Date 与String 互相转换
- java中string与date(日期)格式之间的转换
- Java中对Cookie的使用
- Intellj IDEA 设置默认maven版本
- C语言中scanf、gets、fgets的区别
- hdu 2141 Can you find it?
- 【Java开发手册之编程规约(二)】常量定义
- js中date与String转换
- Lecture 16 Minimum Spanning Trees
- Simple jQuery Dropdowns导航栏的CSS学习总结
- Ireprot需注意的问题
- Dagger2的使用以及源码分析
- [转]hibernate的Hql总结
- SQL语句中new Map的使用和日期的处理
- 六、Class类文件结构
- Date类型字段转换为json时的问题