js中date与String转换js中date与String转换
var remindTime = "2008-04-02 10:08:44";
直接new Date(remindTime ) 即可。
1.⽐较常⽤的⽅法,但繁琐:
主要使⽤Date的构造⽅法:Date(int year , int month , int day)
Java代码
<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.简便⽅法:
Java代码
var str = "2005-12-15";
var d = new place(/-/g, "/"));
Java代码
/-/g是js的正则表达式,匹配划线的
re = /pattern/[flags]
⽤ “/ ” 字符分隔模式
g (全⽂查出现的所有 pattern)
i (忽略⼤⼩写)
m (多⾏查)
Example:
Java代码
<script>
var s = "2010-09-11";
var s1 = "2010-09-12";
var d = new place(/-/g,"/"));
var d1 = new place(/-/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) return1;
if(dateA < dateB) return -1;
return0;
}
var timeStart = "3:20";
var timeEnd = "2:11";
if(comptime(timeStart,timeEnd) != -1)
alert("开始时间必须⼩于结束时间!");
</script>
1、获取⼏天后时间的⼏种⽅法:
(本来考虑⽤Calendar⽅法,后来才发现js中根本⽆法使⽤Calendar)
Java代码
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 + Time()))
//⼀天后的⽇期
抽离为⽅法:
Java代码
var DAY = 1000*60*60*24;
java replace方法
Date.prototype.addDays = function(num){
return new Date((num*DAY)+this.valueOf());
}
var dt = new Date();
alert(dt.addDays(2));
}
此处注意new Date().valueOf()也可获得毫秒数,这个以前根本都没⽤过,呵呵
2、date类型转Str类型:
Java代码
//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、常⽤⽅法
//⽇期转Str
function toDDMMMYYYY(date) {
var d = new Time());
var dd = d.getDate() < 10 ? "0" + d.getDate() : d.getDate().toString();
var mmm = Month()];
var yyyy = d.getFullYear().toString(); //2011
//var YY = YYYY.substr(2); // 11
return dd + mmm + yyyy;
}
function toDDMMMYY(date) {
var d = toDDMMMYYYY(date);
return d.substring(0, 5) + d.substring(7, 9);
}
这种⽅法限制死了最后的Str的格式,想要灵活使⽤,可⽤下⾯这种⽅法:2、⾃⼰定义格式:
Java代码
Date.prototype.parseStr = function(format) {
var YYYY = FullYear(); //2011
var YY = YYYY.substr(2); // 11
format = placeAll("@YYYY@",YYYY);
format = placeAll("@YY@",YY);
var Month()+1;
var MM=(M<10)?"0"+M:M;
var MMM=mths[M - 1];
placeAll("@MMM@",MMM);
placeAll("@MM@",MM);
placeAll("@M@",M);
var Date();
var DD=(D<10)?"0"+D:D;
placeAll("@DD@",DD);
placeAll("@D@",D);
var Hours();
var hh=(h<10)?"0"+h:h;
placeAll("@hh@",hh);
placeAll("@h@",h);
var Minutes();
var mm=(m<10)?"0"+m:m;
placeAll("@mm@",mm);
placeAll("@m@",m);
var Seconds();
var ss=(s<10)?"0"+s:s;
placeAll("@ss@",ss);
placeAll("@s@",s);
var Day();
placeAll("@WEEK@",WEEKs[dayOfWeek]);
placeAll("@WEK@",WEKs[dayOfWeek]);
return format;
}
使⽤时直接这样即可:
Java代码
//var outdateStr = outdate.parseStr("@DD@-@MMM@-@YYYY@");
此处需注意⼀点:
js不提供replaceAll⽅法,只有replace⽅法,⽤for循环⼜有效率问题,最好的⽅法是⽤正则表达式
Java代码
placeAll = function(A,B){
var C=this;
for (var i=0;i<C.length;i++){
place(A,B);
};
return C;
}
Java代码
placeAll = function(s1,s2){
place(new RegExp(s1,"gm"),s2);
}
⾃⼰定义了replaceAll⽅法后就可以像上⾯⼀样⽤replaceAll了。
js中replace⽅法:
replace(regexp/substr,replacement)
Java代码
<script>
var str="Visit Microsoft!"
place("Microsoft", "W3School"));
//alert((place(/Microsoft/, "W3School")); 也可以
</script>
另:
由date求星期:
Day()];
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论