`

js字符串转化为date

阅读更多

        同事问在JS中,如何将日期字符串(如:2014-05-04)转换成Javascript中日期对象Date,上网查了资料,简单做一个小结:
        创建一个日期对象:var objDate=new Date([arguments list]);
        参数形式有以下5种:

new Date("month dd,yyyy hh:mm:ss");
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);

说明:
        month:用英文表示月份名称,从January到December
        mth:用整数表示月份,从0(1月)到11(12月)
        dd:表示一个月中的第几天,从1到31
        yyyy:四位数表示的年份
        hh:小时数,从0(午夜)到23(晚11点)
        mm:分钟数,从0到59的整数
        ss:秒数,从0到59的整数
        ms:毫秒数,为大于等于0的整数,表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。
        另外,Javascript中日期的构造还可以支持 new Date("yyyy/MM/dd"); 其中:MM是整数表示月份从0(1月)到11(12月),这样再利用正则表达式就很方便地能够转换字符串日期了。

实例:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>JS日期测试</title>
</head>
<body>
	
<script type="text/javascript">
<!--
    document.write("<br/>" + new Date("February 3,2009"));
    document.write("<br/>" + new Date("February 3,2009 10:52:03"));
    document.write("<br/>");
    document.write("<br/>" + new Date(2009,1,3));
    document.write("<br/>" + new Date(2009,1,3,10,52,03));
    document.write("<br/>");
    document.write("<br/>" + new Date(Date.parse("February 3,2009")));
    document.write("<br/>" + new Date(Date.parse("February 3,2009 10:52:03")));
    document.write("<br/>" + new Date(Date.parse(2009,1,3)));    //Output: NAN
    document.write("<br/>" + new Date(Date.parse(2009,1,3,10,52,03)));    //Output: NAN
    document.write("<br/>" + new Date(Date.parse("2009/02/03")));
    document.write("<br/>");
    document.write("<br/>" + new Date("2009/02/03"));
    document.write("<br/>" + new Date("2009/02/03 11:12:13"));
    document.write("<br/>" + new Date("2009-02-03"));    //Output: NAN

window.onload=function(){
    var dependedVal="2012-1-5";
    //根据日期字符串转换成日期
    var regEx = new RegExp("\\-","gi");
    dependedVal=dependedVal.replace(regEx,"/");
    //dependedVal=dependedVal.replace("\\-","/");//这样不行
    alert(dependedVal)

    //法一:parse方式,需要2012/1/5这种格式!
    var milliseconds=Date.parse(dependedVal);
    alert(milliseconds)
    var dependedDate=new Date();
    dependedDate.setTime(milliseconds);
    alert("parse方式:" + dependedDate);

    var now = new Date();
    alert("相隔年数:"+(now.getFullYear() - dependedDate.getFullYear()));

    //法二:new方式
    var dependedDate2 = new Date(dependedVal);
    alert("new 方式:" + dependedDate2);

    var now2 = new Date();
    alert("相隔年数:"+(now2.getFullYear() - dependedDate2.getFullYear()));
};
// -->
</script>
</body>
</html>

打开页面运行结果:

        依次弹出如下信息:

2012/1/5
1325692800000
parse方式:Thu Jan 5 00:00:00 UTC+0800 2012
相隔年数:2
new方式:Thu Jan 5 00:00:00 UTC+0800 2012
相隔年数:2

        页面效果:

  • 大小: 51.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics