JS中new Date().Format("yyyy-MM-dd") 报错的解决

目录
  • JS日期格式化转换方法
    • 1. 将日期转换为指定的格式
    • 2. 将指定的日期转换为"年月日"的格式
    • 3. 将 "时间戳" 转换为 "年月日" 的格式
  • 总结

1、原因:ES6中已经去掉了Format 的方法

JS日期格式化转换方法

1. 将日期转换为指定的格式

比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd。

当然是网上的方法,只是总结下。

可以为Date原型添加如下的方法:

Date.prototype.format = function(fmt) {
     var o = {
        "M+" : this.getMonth()+1,                 //月份
        "d+" : this.getDate(),                    //日
        "h+" : this.getHours(),                   //小时
        "m+" : this.getMinutes(),                 //分
        "s+" : this.getSeconds(),                 //秒
        "q+" : Math.floor((this.getMonth()+3)/3), //季度
        "S"  : this.getMilliseconds()             //毫秒
    };
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    }
     for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt;
}

比如

我们可以这样调用下:

var time1 = new Date().format("yyyy-MM-dd hh:mm:ss");
console.log(time1);

运行如下:

也可以转换成 ”年月日”的格式

var time2 = new Date().format("yyyy-MM-dd");
console.log(time2);

运行如下:

2. 将指定的日期转换为"年月日"的格式

代码如下:

    var oldTime = (new Date("2012/12/25 20:11:11")).getTime();
    var curTime = new Date(oldTime).format("yyyy-MM-dd");
    console.log(curTime);

运行如下:

3. 将 "时间戳" 转换为 "年月日" 的格式

比如如下代码:

    var da = 1402233166999;
    da = new Date(da);
    var year = da.getFullYear()+'年';
    var month = da.getMonth()+1+'月';
    var date = da.getDate()+'日';
    console.log([year,month,date].join('-'));

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • javascript中日期函数new Date()的浏览器兼容性问题

    同一种语言javascript,在不同的浏览器中,存在语言兼容性问题,本质上是由于不同的浏览器是支持的语言标准和实现上各有差异.本文将基于new Date来创建Date对象来分析这个问题. 1.  问题的提出, 开始时间和结束时间空间无法正确的传递值 在页面中,我们使用了一个时间上的组件来开发时间选择框,但是发现在Firefox下是无法正常工作的,在Chrome下是可以正常运行的. 问题出在哪里呢? 2.  问题分析 结果分析发现是由于如下代码产生的问题: var timestart = '20

  • js new Date()实例测试

    js new Date() 测试 var t = new Date().toString(); //t = "Thu Oct 31 2019 11:36:57 GMT+0800 (中国标准时间)" var t1 = new Date(); var data_arry =[]; var that = new Date(); data_arry.push(that.constructor()); // Thu Oct 31 2019 11:50:26 GMT+0800 (中国标准时间)&q

  • js中获取时间new Date()的全面介绍

    var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 何问起 hovertree.com myDate.getTime(); /

  • javascript中IE浏览器不支持NEW DATE()带参数的解决方法

    复制代码 代码如下: var date1=new Date(dateTimes[z][1]); 在火狐下 可以正常取得时间,在IE7下 却是 NaN.纠结老长时间,放弃了new date 然后再老外的论坛中找了一段段代码可以兼容所有浏览器的格式化日期代码: 复制代码 代码如下: function NewDate(str) { str = str.split('-'); var date = new Date(); date.setUTCFullYear(str[0], str[1] - 1, s

  • 关于js new Date() 出现NaN 的分析

    此NaN不为NaN: 程序代码如下: 复制代码 代码如下: var date =new Date(d); if(!date || !date.getFullYear) { return; } return S.Date.format(d,'yyyy-mm-dd');//格式化函数,跟此文无关 在其他浏览器下正常,但是在ie下,程序报错 在ie调试器下,发现date 为NaN,如图: 如果是NaN,那么if判断会返回true,会 return "",但是诡异的一幕发生了, 代码说明if判

  • JS中 new Date() 各方法的用法说明

    目录 JS中 new Date() 各方法的用法 1.new Date() 参数篇 2.方法篇 3.国标时间.时间戳.年月日 时分秒的转换 JS中 new Date() 各方法的用法 1.new Date() 参数篇 a.返回类型为国标时间,b.无参数时可以直接返回输出时的时间,c.有参数时则返回对应时间的国标时间,d.日期中间的符号可以为,(英文逗号) - / . * = !@ # ¥ % & ,不可为~ · ` ^ + ,(中文逗号) . new Date() Sun Aug 21 2022

  • 一文掌握new Date() 方法

    目录 可恶的四宗罪 1. Safari浏览器不兼容YYYY-MM-DD这样的格式 2.月份的索引是以0为起点的,而年份.日期却不是 3.年份小于100,默认以19xx或20xx开头 4.日期初始化不统一,存在时区差异 应用思考 1. 时间的计算 2. 时间的比较 3. 时间的格式化 困境的解决 实例化对象 时间戳及克隆 时间对象输出 时间格式化 时间计算及比较 有效性 大家平时在开发的时候有没被new Date()折磨过?就是它的诸多怪异的设定让你每每用的时候,都可能不小心踩坑.造成程序意外出错

  • Javascript new Date().valueOf()的作用与时间戳由来详解

    众所周知PHP中对时间类型数据可以直接转换为时间戳,那么在前端脚本js中,也有方法可以实现,就是valueOf() 例如,我们可以通过这段代码输出当前时间点的时间戳 复制代码 代码如下: <script type="text/javascript">  document.write(new Date().valueOf());</script> 那么何为时间戳呢? 时间戳就是从1970年1月1日0时0分0秒到当前时间点的所有秒数.1970.1.1 0:0:0 这

  • input框中自动展示当前日期yyyy/mm/dd的实现方法

    直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>input框中自动展示当前日期</title> </head> <body> <input type="text" id="input"> <script>

  • vue中使用vant的Toast轻提示报错的解决

    目录 使用vant的Toast轻提示报错 提示信息弹出(toast) 实现过程如下 使用vant的Toast轻提示报错 记录一下今天使用vant中的Toast 轻提示,按照官方文档中的方法去使用发现报错使用不了. 文档中是这样写的 Toast.success('成功文案'); Toast.fail('失败文案'); main.js中引用vant后直接调用Toast报错. 实际使用是这样写 this.$toast.success("成功文案"); this.$toast.fail(&qu

  • Android线程中设置控件的值提示报错的解决方法

    本文实例讲述了Android线程中设置控件的值提示报错的解决方法.分享给大家供大家参考,具体如下: 在Android线程中设置控件的值一般会与Handler联合使用,如下: package com.yarin.android.Examples_04_15; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import andro

  • JS中new Date().Format("yyyy-MM-dd") 报错的解决

    目录 JS日期格式化转换方法 1. 将日期转换为指定的格式 2. 将指定的日期转换为"年月日"的格式 3. 将 "时间戳" 转换为 "年月日" 的格式 总结 1.原因:ES6中已经去掉了Format 的方法 JS日期格式化转换方法 1. 将日期转换为指定的格式 比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd. 当然是网上的方法,只是总结下. 可以为Date原型添加如下的方法: Date.pr

  • JavaScript中的单引号和双引号报错的解决方法

    在使用JavaScript显示消息或者传递字符数据的时候,经常会碰到数据中夹杂单引号(')或者双引号("),这种语句往往会造成JavaScript报错.对此一般采用/'或者/"的解决. 例如: Alert("this is test "message"!"); Alert('this is test 'message'!'); 一般会改成以下语句 Alert("this is test /"message/"!&qu

  • Vue2.x中利用@font-size引入字体图标报错的解决方法

    利用 vue-cli 搭建的项目平台 利用stylus写的css样式 有 css-loader 依赖包x 下图是 webpack.base.conf.js 关于字体文件的配置 有人这里会有重复的字体文件的配置,删除一项即可 出现的问题:引入字体图标出现问题 1.报错 将字体引入的相对路径改成绝对路径 相对路径 绝对路径 2.不报错,但是出现的字体图标是小方框 有警告信息: 小方块: 报错是因为重定向的问题 出现上述问题的原因 ①没在用到的地方引入字体的样式文件 ②使用的是后缀名为 .styl 文

  • Typescript中使用引用路径别名报错的解决方法

    在TS中引用路径别名提示找不到模块或者相应的声明 1.ts中使用路径别名报错 在react中通常路径别名都是在webpack的webpack.config.js文件中配置的,但是在引入了ts之后,webpack中的路径别名引用失效了此时我们需要在跟src文件同级目录的tsconfig.json文件中添加配置: 注意要在compilerOptions中添加(webpack中的路径也需要配置) "compilerOptions": { "target": "e

  • 基于php双引号中访问数组元素报错的解决方法

    最近在做微信公众号开发,在一个发送图文接口中,需要把数组元素拼接在XML字符串中 foreach ($itemArr as $key => $value){ $items .= "<item> <Title><![CDATA[$value['title']]]></Title> <Description><![CDATA[[$value['description']]]></Description> <

  • vue 中使用 watch 出现了如下的报错的原因分析

    报错: Method "watch" has type "object" in the component definition. Did you reference the function Method "watch" has type "object" in the component definition. Did you reference the function correctly? 原因: watch 是一个对

  • vuex2中使用mapGetters/mapActions报错的解决方法

    解决方案 可以安装整个stage2的预置器或者安装 Object Rest Operator 的babel插件 babel-plugin-transform-object-rest-spread . 接着在babel的配置文件 .babelrc 中应用插件: { "presets": [ ["es2015", { "modules": false }] ], "plugins": ["transform-object

随机推荐