js中日期的格式化

有些时候,js中日期显示出来是 yyyy/MM/dd 这种格式,但是我需要yyyy-MM-dd格式的

简单粗暴的直接replace总是不太好,或者通过Date对象的相关方法拼接起来,也还是有些粗暴

要是可以格式化就好了,

在网上收集了一些资料,经过修改调试,完成可用,OK,以下的代码:

(1)首先需要扩展日期Data的格式化方法

//扩展日期格式化方法
Date.prototype.parseStr = function (format) {
    var YYYY = this.getFullYear(); //2011  

//    var YY = YYYY.substring(2);   // 11
    format = format.replaceAll("@[email protected]", YYYY);
//    format = format.replaceAll("@[email protected]", YY);

    var M = this.getMonth() + 1;
    var MM = (M < 10) ? "0" + M : M;
//    var MMM = mths[M - 1];
//    format = format.replaceAll("@[email protected]", MMM);
    format = format.replaceAll("@[email protected]", MM);
    format = format.replaceAll("@[email protected]", M);

    var D = this.getDate();
    var DD = (D < 10) ? "0" + D : D;
    format = format.replaceAll("@[email protected]", DD);
    format = format.replaceAll("@[email protected]", D);

    var h = this.getHours();
    var hh = (h < 10) ? "0" + h : h;
    format = format.replaceAll("@[email protected]", hh);
    format = format.replaceAll("@[email protected]", h);
    var m = this.getMinutes();
    var mm = (m < 10) ? "0" + m : m;
    format = format.replaceAll("@[email protected]", mm);
    format = format.replaceAll("@[email protected]", m);
    var s = this.getSeconds();
    var ss = (s < 10) ? "0" + s : s;
    format = format.replaceAll("@[email protected]", ss);
    format = format.replaceAll("@[email protected]", s);
//    var dayOfWeek = this.getDay();
//    format = format.replaceAll("@[email protected]", WEEKs[dayOfWeek]);
//    format = format.replaceAll("@[email protected]", WEKs[dayOfWeek]);
    return format;
}  

(2)由于用到了string.replaceAll方式,这个也是string的扩展:

String.prototype.replaceAll = function (s1, s2) {
    return this.replace(new RegExp(s1, "gm"), s2);
}

(3)写出格式化方法:

//日期格式化
function parseDate(dateStr, hasTime) {
    var date = new Date(dateStr.replace(/-/g, "/"));
    if (hasTime)
        return date.parseStr("@[email protected]@[email protected]@[email protected] @[email protected]:@[email protected]:@[email protected]");
    return date.parseStr("@[email protected]@[email protected]@[email protected]");
}

(4)具体调用:

<button value="日期test" onclick="t1()">dd
    </button>
    <button value="时间test" onclick="t2()">
    </button>
    <script>
        function t1() {
            var str = "2015/5/8";
            alert(parseDate(str, false));
        }

        function t2() {
            var str = "2015/5/8 10:01:02";
            alert(parseDate(str, true));
        }
    </script>

Ok,搞定了!

时间: 2024-10-30 08:47:25

js中日期的格式化的相关文章

用简单的方法实现js中日期的加减法

今天就算对JS中日期的加减法做个总结,一共两步 第一步,引入date.format.js,这个JS的作用是将日期转为指定的格式,代码如下 var dateFormat = function () {     var    token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,         timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mount

asp.net 中日期的格式化显示的方法

在Asp.net 中经常使用日期,在不同的场合,对日期的显示方式有不同的要求,为此,自己总结了一些日期格式化的方式,仅供学习参考使用: C#格式化日期时间 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2.Text = dt.ToFileTime().ToString();//127756416859912816 Label3.Text = dt.ToFileTimeUtc().

js 中日期2013-08-30或2019-08-24 12:30:00 转换成时间戳

js 中日期2019-08-24 或2019-08-24 12:30:00 转换成时间戳 首先将它转成date日期类型,然后获取毫秒形式时间戳 let date=new Date("2019-08-24 12:30:00")//date日期类型 let time= date.getTime(); //毫秒时间戳 获取date的年月日等方法如下 Date() 返回当日的日期和时间. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31). getDay() 从 Da

sql语句中日期时间格式化查询

      今天在做会员管理系统搜索时,我发现以前的搜索时间方式不太科学,效率也不是太高.由其是在查询指定的时间相等的时候,我在数据库中都存这样的时间格式"2007-5-22 14:32:12"当我们在查询2007-5-22是否与它相等,结果是不相等的.      所我们都喜欢找其它途径来解决这个问题.但是我发现我们的方法都不是太好,因为我们有的时候对sql sever的语句特性还了解的不够彻底.所以我查询了查sql server有帮助,终于发现个好东西,可以解决这个问题. CONVE

jsp页面中日期的格式化

在一次开发中,由于数据库中生日采用的是datetime的数据类型,因此数据库中数据格式为:2017-07-11 00:00:00. 但是,编辑页面中回显生日肯定是不可以显示出时分秒的,只能显示2017-07-11这种格式:如果不处理的话,回显的数据就有问题. 在不改变数据库结构的情况下,我们直接在jsp页面中对回显的数据格式化,采用<fmt:formatDate/> 标签. 代码如下: <input type="text" id="birthday"

angular js中ng-model时间格式化

直接上带代码,事实上此时不用ng-model,直接用value即可 <div class="form-group m-b-sm"> <label class="col-sm-3 control-label"><span class="text-danger m-r-xs"></span>修改时间</label> <div class="col-sm-9">

js中时间的格式化

var dt = new Date(); dt.setDate(26); dt.setMonth(7); dt.setYear(2015); dt.setHours(21); dt.setMinutes(46); document.writeln(dt.toString() + " <br />"); document.writeln(dt.toLocaleString() + " <br />"); document.writeln(dt.

asp.net mvc 中日期时间格式化

第一种直接ToString();@Html.TextBox("", Model.HasValue ? Model.Value.ToString("yyyy-MM-dd") : "", new {@class = "date"}) 第二种string.Format Html.TextBox("BornDate", string.Format("{0:yyyy-MM-dd}", Model.

JS中如何将字符串转化成日期 日期格式化方法

<!--     /**     * 对Date的扩展,将 Date 转化为指定格式的String     * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符     * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)     * eg:     * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-0