js关于时间的格式问题

我们在js中的时间格式一般有

2014-09-09

2014-9-9

2014/09/09

2014/9/9

这几种显示显示中只有第二种有问题

var date =new Date("2014-9-9“)

这种方式是有问题的,行不通

一般的情况就是将”-“替换成”/”

下面代码:

 <script type="text/javascript" >
        String.prototype.Trim = function () {
            return this.replace(/(^\s*)|(\s*$)/g, "");
        }
        //是否是正确的长日期 
        String.prototype.isLongDate = function () {
            var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
            if (r == null) {
                return false;
            }
            var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
            return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4] && d.getHours() == r[5] && d.getMinutes() == r[6] && d.getSeconds() == r[7]);
        }
        //是否是正确的短日期 
        String.prototype.isShortDate = function () {
            var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
            if (r == null) {
                return false;
            }
            var d = new Date(r[1], r[3] - 1, r[4]);
            return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);
        }
        //是否是正确的日期 
        String.prototype.isDate = function () {
            return this.isLongDate() || this.isShortDate();
        } 
        function valid() {
            var id = document.getElementById("<%=txtOrderID.ClientID %>").value;
            var beginTime = document.getElementById("<%=txtBeginTime.ClientID %>").value;
            var endTime = document.getElementById("<%=txtEndTime.ClientID %>").value;
            id = id.Trim();
            beginTime = beginTime.Trim();
            endTime = endTime.Trim();
            if (id == "") {
//                if (isNaN(id)) {
//                    alert("请输入合适的订单号");return false;
                //                }
                if (!beginTime.isDate()) {
                    alert("请输入合适的开始时间!");return false;
                }
                if (!endTime.isDate()) {
                    alert("请输入合适的结束时间!"); return false;
                }
                beginTime = beginTime.replace(/-/gi, "/");
                endTime = endTime.replace(/-/gi, "/");
                var begin = new Date(beginTime);
                var end = new Date(endTime);
                if (begin > end) {
                    alert("开始时间不能大于结束时间!"); return false;
                }
                begin.setDate(begin.getDate() + 7); 
                if (begin < end) {
                    alert("时间跨度不能超过一周!"); return false;
                }
            }
        }
    </script>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。