分享一个工具方法:日期格式化 & 日期转化,用法与java类SimpleDateFormat类似
/**
* y 年(201X)
* M 年中的月份(1-12)
* d 月份中的天数(1-31)
* H 一天中的小时数(0-23)
* h am/pm 中的小时数(1-12)
* m 小时中的分钟数(0-59)
* s 分钟中的秒数(0-59)
* S 毫秒数(0-999)
*/
/**
* 格式化输出日期
* eq: dateFormat(new Date(),"yyyy-MM-dd HH:mm:ss")
*/
export const dateFormat = (date,format) => {
let reg = /[yMdHhmsS]/;
let formatArr = format.match(/(.)\1*/g);
let formatObj = {
y:""+date.getFullYear(),
M:"0"+(date.getMonth()+1),
d:"0"+date.getDate(),
H:"0"+date.getHours(),
h:"0"+(date.getHours()>12?date.getHours()-12:(date.getHours()==0?12:date.getHours())),
m:"0"+date.getMinutes(),
s:"0"+date.getSeconds(),
S:"00"+date.getMilliseconds()
};
let str = "";
for(let i= 0,len = formatArr.length;i<len;i++){
if(formatArr[i]){
let char0 = formatArr[i].charAt(0);
if(reg.test(char0)){
let charLen = formatArr[i].length;
str += formatObj[char0].slice(charLen*-1);
}else{
str += formatArr[i];
}
}
}
return str;
},
/**
* 字符串转化为Date对象
* eq: parseDate("yyyy-MM-dd HH:mm:ss","2017-10-24 20:33:11")
*/
export const parseDate = (dateStr,format) => {
if(dateStr.length!==format.length){
console.warn("parseDate: the length of the dateString and format is not equal");
}
let reg = /[yMdHhmsS]/;
let formatArr = format.match(/(.)\1*/g);
let date = new Date();
let formatObj = {
y:date.setFullYear,
M:date.setMonth,
d:date.setDate,
H:date.setHours,
h:date.setHours,
m:date.setMinutes,
s:date.setSeconds,
S:date.setMilliseconds
};
for(let i = 0,formatLenCount = 0,len = formatArr.length;i<len;i++){
let formatUnit = formatArr[i];
if(formatUnit){
let char0 = formatUnit.charAt(0);
if(reg.test(char0)){
let dateUnit = dateStr.substring(formatLenCount,formatLenCount+formatUnit.length);
char0==="M"?formatObj[char0].call(date,dateUnit-1):formatObj[char0].call(date,dateUnit);
}
}
formatLenCount += formatUnit.length;
}
return date;
},
分享一个工具方法:日期格式化 & 日期转化,用法与java类SimpleDateFormat类似的更多相关文章
- 分享一个很好用的 日期选择控件datepicker 使用方法分享
很多同学在做网站的时候,有时候需要用户选择日期,年月日这些的,以前我也在用一个,但是那个的界面都不太好看,于是找啊找,找啊找,找到一个好东西,就是这个,datepicker,是jquery.ui里面的 ...
- js扩展Date对象的方法,格式化日期格式(prototype)
扩展:Date.prototype.format = function(format){ var o = { "M+" : this.getMonth()+1, ...
- 分享一个js方法
这是一个关于参数合并的方法,这个场景也经常遇到,比如我们现在要对微信小程序的wx.request进行再一次封装,会涉及到一些默认的参数和每次使用自己传递的参数合并问题,分享代码. var extend ...
- 分享一个赚钱方法:用趣分类app在家轻松赚钱
什么是趣分类 近期,垃圾分类是社会各界和广大市民关心的一个热门话题,随着垃圾分类工作的推进,各地都掀起学习垃圾分类的热潮.为了我们的美好生活,打响"垃圾分类"这场硬仗刻不容缓.据了 ...
- 分享一个的c++写的,模仿awk的框架类CAwkDoc
这是我好多年前,模仿awk写的. awk大家都比较熟悉,使用awk处理文件,读取文件,分割字段这些工作awk自己帮你实现了. 程序员只要编写业务逻辑代码,并且awk还提供了很多常用的字符串操作函数,可 ...
- Java 格式化日期、时间
有三种方法可以格式化日期.时间. 1.使用DateFormat类 获取DateFormat实例: DateFormat.getDateInstance() 只能格式化日期 2019年5 ...
- Python 日期和时间_python 当前日期时间_python日期格式化
Python 日期和时间_python 当前日期时间_python日期格式化 Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Python 提供了一个 time 和 cal ...
- JavScript 日期格式化
JavScript 日期格式化 //日期格式化 function formatDate(date,fmt) { if(date == null || typeof (date) == undefine ...
- JQ 日期格式化
将字符转换为日期格式: function getDate(strDate) { var date = eval('new Date(' + strDate.replace(/\d+(?=-[^-]+$ ...
随机推荐
- Java(18)抽象类
作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201625.html 博客主页:https://www.cnblogs.com/testero ...
- LDAP-初见
目录 什么是LDAP? LDAP 协议能解决什么问题? Spring Boot中使用LDAP来统一管理用户信息 添加用户 连接LDAP服务端 什么是LDAP? LDAP 的全称是 Lightweigh ...
- pip 安装软件报 Requirement already satisfied
pip 安装的时候报错了,以为是豆瓣源有问题,换了还是一样,于是我们只需要加入一个参数 --target=路径 给它一个指定的位置就可以解决这个问题 安装位置不变,只是增加了一个参数在后面
- JAVA复习总体大纲
1 java基础. [1].变量--- 数据类型 变量名=值; 数据类型: 1.基本数据类型. byte[1字节] short[2字节] int[4字节] long[8字节] float[4字节] d ...
- [Beta]the Agiles Scrum Meeting 9
会议时间:2020.5.24 21:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 issue yjy 撰写技术博客 tq 实现评测机获取评测状态功能 评测部分增加更多评测指标 wjx ...
- Seata的一些概念
Seata的一些概念 一.什么是seata 二.AT模式的介绍 1.前提条件 2.整体机制 3.读写隔离的实现 1.写隔离 2.读隔离 三.事务分组 1.事务分组是什么? 2.通过事务分组如何找到后端 ...
- 高斯消元de小板几
感觉就是模拟解方程,还比手动解方程笨一些.... 但是大数据的话,他毕竟比我解得快多了.... 1 inline int Gauss(int n){ 2 int cnt=1;//真实到达的行列式行数 ...
- 面试官问:说说你对Java函数式编程的理解
常见的面试问题 总结一下,在Java程序员的面试中,经常会被问到类似这样的问题: Java中的函数式接口是什么意思? 注解 @FunctionalInterface 的作用是什么? 实现一个函数式接口 ...
- CentOS8 部署 MySQL8
前言 有来项目的数据库在此之前使用的是 Docker 部署的,具体可见文章 Docker 安装 MySQL8 ,服务器是阿里云 2C2G 的ECS轻量服务器,可能是配置问题有时不论查什么都要等很长很长 ...
- threading python2 和python3
from __future__ import division from __future__ import print_function import threading balance = 0 d ...