探讨问题1: 如何将 2017年8月22日 转换成 2017-8-22 / 2017-08-22呢

'2017年8月22日'.replace(/[年月日]/g,'-');

'2017年8月22日'.match(/\d+/g).join('-')
'2017年8月22日'.replace(/[年月]/g,'-').replace('日','');

点评:第一种形式 返回的是

2017-8-22-
//这时我们可以通过字符串截取来处理
'2017年8月22日'.replace(/[年月日]/g,'-').slice(0,-1);  

上面日期 如果小于10,补0 ,则需要用如下方法

'2017年8月22日'.match(/\d+/g).map(n => +n < 10 ? '0'+n : n).join('-')

function format( str ) {
var result = /^(\d+)年(\d+)月(\d+)日$/.exec(str)
if( result ) {
var y = result[ 1 ];
var m = result[ 2 ];
var d = result[ 3 ];
m = Number( m ) < 10 ? '0' + m : m;
d = Number( d ) < 10 ? '0' + d : d;
return y + '-' + m + '-' + d;
}
return null;
}
console.log(format( '2017年8月22日'))
'2017年8月22日'.match(/\d{1,4}/g).join('-').replace(/\d+/g, function(d) {
return (d.length > 1)? d : ('0' + d);
}) '2017年8月22日'.replace(/(\d+)日/, function(_d, d) {
return (d.length == 2)? ('-' + d) : ('-0' + d);
}).replace(/(\d+)月/, function(_m, m) {
return (m.length == 2)? ('-' + m) : ('-0' + m);
}).replace(/(\d+)年/, function(_y, y) {
return y;
}) '2017年8月22日'.replace(/(\d+)[年,月,日]/g, function(_d,d) {
return (d.length > 1) ? d.length == 4 ? d : ('-' + d) : ('-0' + d);
}) '2017年8月22日'.replace(/(\d{4})年(\d{1,2})月(\d{1,2})日/, (a,b,c,d)=>{
return `${b}-${c>9?c:'0'+c}-${d}`
})

探讨问题2: 如何计算指定月份的天数

要想得到某月有多少天,只需要获取到当月最后一天的日期就行了

围绕这一思路,灵活调用 setMonth(),getMonth(),setDate(),getDate(),计算出所需日期

function getMonthLength(date) {
let d = new Date(date)
// 将日期设置为下月一号
d.setMonth(d.getMonth()+1)
d.setDate('1')
// 获取本月最后一天
d.setDate(d.getDate()-1)
return d.getDate()
}
getMonthLength("2018-02-24");

比较好的 做法是   new Date(year,month,0).getDate()

//使用 new Date() 创建时间对象时,如果 date 传入 0,就能直接通过 getDate() 获取到最后一天的日期
new Date(2018,2,0).getDate()

js日期格式转换的相关问题探讨的更多相关文章

  1. C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)

    C# MVC 用户登录状态判断   来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...

  2. js 日期格式 转换 yyyy-MM-dd

    之前js获取到数据库的Date,总是显示成: 后来知道是js 的Date 格式不能直接转换常用的yyyy-MM-dd 的格式 Date.prototype.yyyymmdd = function () ...

  3. js 日期格式转换(转载)

    1.当前时间转为 “yyyy-MM-dd HH:MM:SS” function getNowFormatDate() { var date = new Date(); var seperator1 = ...

  4. JS 日期格式转换

    //Json 数据年月日 返回 直接传入参数 如/Date(1379433600000)/ function GetDate(date) { if (date == null) return null ...

  5. js日期格式转换

    var mydate=new Date(); var year=mydate.getFullYear(); //获取四位数getYear() 获取两位 var month=mydate.getMont ...

  6. SpringMVC与MyBatis整合之日期格式转换

    在上一篇博客<SpringMVC与MyBatis整合(一)——查询人员列表>中遗留了日期格式转换的问题,在这篇记录解决过程. 对于controller形参中pojo对象,如果属性中有日期类 ...

  7. 日期格式转换 java 2016-09-03T00:00:00.000+08:00

    /**  * 日期格式转换yyyy-MM-dd'T'HH:mm:ss.SSSXXX  (yyyy-MM-dd'T'HH:mm:ss.SSSZ) TO  yyyy-MM-dd HH:mm:ss  * @ ...

  8. Oracle日期格式转换,tochar(),todate()

    Oracle日期格式转换 本文主要介绍Oracle中的日期转换. 1. 日期转化为字符串 (以2016年10月20日为例) select to_char(sysdate,'yyyy-mm-dd hh2 ...

  9. Python 日期格式转换

    经常需要爬取网站上的时间信息,不同的网站又有不同的日期显示方式.而我需要将日期格式转化为一种特定的格式,所以为了简便和学习,记录下各种不同的日期格式转换. 日期格式化符号: %y :两位数的年份表示( ...

随机推荐

  1. servlet总结:Servlet基础

    Servlet基础 1.手工编写第一个Servlet ⑴继承HttpServlet ⑵重写doGet()或者doPost()方法 ⑶在web.xml中注册Servlet 2.使用eclipse编写第一 ...

  2. js总结:JavaScript入门

    1. JavaScript-输出内容(document.write) 2.在html中引用js文件 3.定义变量 语法:var 变量名 说明: ⑴变量必须使用字母.下划线(_)或者美元符($)开始. ...

  3. asp.net mvc Dateset读取Excel数据

    //处理Excel //读取Excel [NonAction] public static DataSet ExcelToDS(string Path) { //根据情况选择合适的连接字符,参考msd ...

  4. connect、resource和dba三种标准角色

    授权语句:grant connect,resource,dba to zwserver 经过授权以后,用户拥有connect.resource和dba三个角色的权限: (1)Connect 角色,是授 ...

  5. 五、es6 Set

    一.特点 1.是一个构造函数 2.类数组,元素唯一.没有重复 二.new Set(); 二.构造函数接受数组将数组转换成Set数据结构,[...new Set(1,3)],转化成对象: console ...

  6. MySQL 日期类型函数及使用

    1 MySQL 数据库中有五种与日期时间有关的数据类型,各种日期数据类型所占空间如下图所示: 2 datetime 与 date datetime 占用8字节,是占用空间最多的一种日期格式.它显示日期 ...

  7. Windows 禁止 chrome 自动更新的方法

    来源: https://www.cnblogs.com/zhouwanqiu/p/9329134.html 公司进行兼容性测试 需要chrome的浏览器版本, 但是 公司网络抽风 偶尔 总能是升级到最 ...

  8. 头文件带和不带.h的区别

    所有C++标准库的头文件都是没有.h结尾的.这么做是为了区分,C标准库的头文件和C++标准库的头文件.比如最具代表性的: #include <string.h> // C 标准库头文件,包 ...

  9. 局域网 FTP建立,搭建一个简易的局域网服务器

    1.创建用户名以及密码: 右键我的电脑 -> 管理->本地用户和组->右键用户->新用户----设置用户名密码: 2.安装IIS 和FTP :控制面板->程序->打 ...

  10. IIS下载地址

    https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=1038