js日期格式转换的相关问题探讨
探讨问题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日期格式转换的相关问题探讨的更多相关文章
- 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 ...
- js 日期格式 转换 yyyy-MM-dd
之前js获取到数据库的Date,总是显示成: 后来知道是js 的Date 格式不能直接转换常用的yyyy-MM-dd 的格式 Date.prototype.yyyymmdd = function () ...
- js 日期格式转换(转载)
1.当前时间转为 “yyyy-MM-dd HH:MM:SS” function getNowFormatDate() { var date = new Date(); var seperator1 = ...
- JS 日期格式转换
//Json 数据年月日 返回 直接传入参数 如/Date(1379433600000)/ function GetDate(date) { if (date == null) return null ...
- js日期格式转换
var mydate=new Date(); var year=mydate.getFullYear(); //获取四位数getYear() 获取两位 var month=mydate.getMont ...
- SpringMVC与MyBatis整合之日期格式转换
在上一篇博客<SpringMVC与MyBatis整合(一)——查询人员列表>中遗留了日期格式转换的问题,在这篇记录解决过程. 对于controller形参中pojo对象,如果属性中有日期类 ...
- 日期格式转换 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 * @ ...
- Oracle日期格式转换,tochar(),todate()
Oracle日期格式转换 本文主要介绍Oracle中的日期转换. 1. 日期转化为字符串 (以2016年10月20日为例) select to_char(sysdate,'yyyy-mm-dd hh2 ...
- Python 日期格式转换
经常需要爬取网站上的时间信息,不同的网站又有不同的日期显示方式.而我需要将日期格式转化为一种特定的格式,所以为了简便和学习,记录下各种不同的日期格式转换. 日期格式化符号: %y :两位数的年份表示( ...
随机推荐
- PhpStorm的注册激活方法
首先,需要修改本地的hosts文件(路径一般为C:\Windows\System32\drivers\etc\hosts),添加下面这行代码. 0.0.0.0 account.jetbrains.co ...
- MySQL Limit优化(转)
原文:http://bbs.landingbj.com/t-0-240894-1.html 首先,我们看一个分页SQL: SELECT time,pageFROM `l_not_200_page`WH ...
- python内涵段子爬取练习
# -*- coding:utf-8 -*-from urllib import request as urllib2import re# 利用正则表达式爬取内涵段子url = r'http://ww ...
- 一次linux问题分析原因的简要记录
1. 这边功能测试 一个linux服务器 4c 16g的内存 发现总是出现异常. dotnet run 起来的一个 程序 总是会被killed 现象为: 2. 一开始怀疑是 打开的文件描述符过多 引起 ...
- 902. Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. You ...
- C# Note19: Windows安装包制作实践
前言 最近在项目中需要不断更新新版本的software installer(软件安装包),于是便查阅资料,整理了下制作方法. NSIS安装包制作脚本 NSIS(Nullsoft Scriptable ...
- websocket协议握手详解
最近使用tornado做长链接想着怎么着也要试试websocket协议吧.所以说干就干. 首先要知道websocket是基于http协议的,为什么这么说?因为从协议来说,websocket是借用了一部 ...
- 集合之LinkedHashSet(含JDK1.8源码分析)
一.前言 上篇已经分析了Set接口下HashSet,我们发现其操作都是基于hashMap的,接下来看LinkedHashSet,其底层实现都是基于linkedHashMap的. 二.linkedHas ...
- Lodop打印设计、维护、预览、直接打印简单介绍
四者的区别和联系:(其中PRINT_DESIGN打印设计是提供给开发人员的,另外三个可开放给用户)PRINT_DESIGN打印设计:辅助开发人员设计,图形化拖动插入修改等,设计完成后,生成代码拷贝到程 ...
- darknet源码解析
https://blog.csdn.net/u014540717/article/category/6513159