java js date_js中date与String转换

JS中字符转日期

var remindTime = "2008-04-02 10:08:44";

直接new Date(remindTime) 即可。

1.比较常用的方法,但繁琐:

主要使用Date的构造方法:Date(int year , int month , int day)

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

2.简便方法:

var str = "2005-12-15";

var d = new Date(str.replace(/-/g, "/"));

/-/g是js的正则表达式,匹配划线的

re = /pattern/[flags]

用 "/ " 字符分隔模式

g (全文查找出现的所有 pattern)

i (忽略大小写)

m (多行查找)

Example:

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

JS比较时间:

//时间对比函数,如果a>b返回1,如果a

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("开始时间必须小于结束时间!");

----------------------------------------------------------------------------------------------------------------------

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.οnlοad=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、常用方法

//日期转Str

function 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); // 11

return 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(); //2011

var YY = YYYY.substr(2); // 11

format = 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=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)

var str="Visit Microsoft!"

alert(str.replace("Microsoft", "W3School"));

//alert((str.replace(/Microsoft/, "W3School")); 也可以

另:

由date求星期:

WEKs[date.getDay()];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值