JS 格式化时间(获取两个日期之间的每一天、每一月、每半小时、每一秒)
时间戳转换为时间
// 时间戳转换为时间
function timestampToTime(timestamp, isMs = true) {
const date = new Date(timestamp * (isMs ? 1 : 1000))
return `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`
}
获取当天过去每半小时的时间
function formatTodayHalfHours(nowDate = +new Date()) {
var timeStamp = new Date(new Date().setHours(0, 0, 0, 0));
var dateList = [];
while (nowDate > timeStamp) {
var hour = new Date(nowDate).getHours() < 10 ? '0' + new Date(nowDate).getHours() : new Date(nowDate).getHours();
var minute = new Date(nowDate).getMinutes() < 31 ? '00' : '30';
dateList.unshift(hour + ':' + minute + ':' + '00');
nowDate -= 30 * 60 * 1000
}
return dateList
}
例如,当天0点 - 12点20分之间没半个小时的时间:
formatTodayHalfHours(+new Date('2019-04-28 12:20:00'))
输出:
["00:00:00", "00:30:00", "01:00:00", "01:30:00", "02:00:00", "02:30:00", "03:00:00", "03:30:00", "04:00:00", "04:30:00", "05:00:00", "05:30:00", "06:00:00", "06:30:00", "07:00:00", "07:30:00", "08:00:00", "08:30:00", "09:00:00", "09:30:00", "10:00:00", "10:30:00", "11:00:00", "11:30:00", "12:00:00"]
获取两个日期之间的每一天
function formatEveryDay(start, end) {
let dateList = [];
var startTime = getDate(start);
var endTime = getDate(end);
while ((endTime.getTime() - startTime.getTime()) >= 0) {
var year = startTime.getFullYear();
var month = startTime.getMonth() + 1 < 10 ? '0' + (startTime.getMonth() + 1) : startTime.getMonth() + 1;
var day = startTime.getDate().toString().length == 1 ? "0" + startTime.getDate() : startTime.getDate();
dateList.push(year + "-" + month + "-" + day);
startTime.setDate(startTime.getDate() + 1);
}
return dateList;
}
function getDate(datestr) {
var temp = datestr.split("-");
var date = new Date(temp[0], temp[1] - 1, temp[2]);
return date;
}
例如:
formatEveryDay('2019-03-05','2019-03-16');
输出:
["2019-03-05", "2019-03-06", "2019-03-07", "2019-03-08", "2019-03-09", "2019-03-10", "2019-03-11", "2019-03-12", "2019-03-13", "2019-03-14", "2019-03-15", "2019-03-16"]
获取两个日期之间的所有月份
// 格式化时间,获取两个日期之间所有月份
function getMonthBetween(start, end) { //传入的格式YYYY-MM
let dateList = []; // 时间格式 ‘2019-04-01’
let dateList2 = []; // 时间格式 ‘2019-04’
var s = start.split("-");
var e = end.split("-");
var min = new Date();
var max = new Date();
min.setFullYear(s[0], s[1] * 1 - 1, 1); // 开始日期
max.setFullYear(e[0], e[1] * 1 - 1, 1); // 结束日期
var current = min;
while (current <= max) {
var year = current.getFullYear();
var month = current.getMonth() + 1 < 10 ? '0' + (current.getMonth() + 1) : current.getMonth() + 1;
dateList.push(year + "-" + month + "-" + '01');
dateList2.push(year + "-" + month);
current.setMonth(month);
}
return [dateList, dateList2];
}
例如:
getMonthBetween('2018-12-05','2019-03-16');
输出:
[["2018-12-01","2019-01-01","2019-02-01","2019-03-01"], ["2018-12","2019-01","2019-02","2019-03"]]
获取最近n秒的时间
function formatDateToArray(steps = 40) {
var nowDate = +new Date() - 10000;
var xAxisDate = [],
postDate = [];
for (var i = 0; i < steps; i++) {
var year = new Date(nowDate).getFullYear();
var month = new Date(nowDate).getMonth() + 1 < 10 ? '0' + (new Date(nowDate).getMonth() + 1) : new Date(nowDate).getMonth() + 1;
var day = new Date(nowDate).getDate() < 10 ? '0' + new Date(nowDate).getDate() : new Date(nowDate).getDate();
var hour = new Date(nowDate).getHours() < 10 ? '0' + new Date(nowDate).getHours() : new Date(nowDate).getHours();
var minute = new Date(nowDate).getMinutes() < 10 ? '0' + new Date(nowDate).getMinutes() : new Date(nowDate).getMinutes();
var second = new Date(nowDate).getSeconds() < 10 ? '0' + new Date(nowDate).getSeconds() : new Date(nowDate).getSeconds();
xAxisDate.unshift(hour + ':' + minute + ':' + second);
postDate.unshift(year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
nowDate = nowDate - 1000;
}
return [xAxisDate, postDate];
}
例如:获取最近10秒:
formatDateToArray(10);
获取最近 n 天
function getRecentDays(num) {
var today = new Date();
var steps = today.getTime() + 1000 * 60 * 60 * 24 * num;
today.setTime(steps);
var yy = today.getFullYear();
var mm = today.getMonth();
var dd = today.getDate();
mm = bindMonth(mm + 1);
dd = doHandleMonth(dd);
return yy + "-" + mm + "-" + dd;
}
function bindMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
}
return m;
}
function doHandleMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
}
return m;
}
例如,9天前:
getRecentDays(-9);
获取两个日期之间的天数
function getDateDiff(startDate, endDate) {
var startTime = new Date(Date.parse(startDate.replace(/-/g, "/"))).getTime();
var endTime = new Date(Date.parse(endDate.replace(/-/g, "/"))).getTime();
var dates = Math.abs((startTime - endTime)) / (1000 * 60 * 60 * 24);
return dates;
}
例如:
getDateDiff('2019-05-30','2019-05-20')
输出:
10
JS 格式化时间(获取两个日期之间的每一天、每一月、每半小时、每一秒)的更多相关文章
- Java 获取两个日期之间的日期
1.前期需求,两个日期,我们叫他startDate和endDate,然后获取到两个日期之间的日期 /** * 获取两个日期之间的日期 * @param start 开始日期 * @param end ...
- java 获取两个日期之间的所有日期(年月日)
前言:直接上代码 java 获取两个日期之间的所有日期(年月日) /** * 获取两个日期之间的日期,包括开始结束日期 * @param start 开始日期 * @param end 结束日期 * ...
- java获取两个日期之间的所有日期
java获取两个日期之间的所有日期 解决方法: 1.核心方法 private List<String> getBetweenDates(String start, String end ...
- 关于js的当前日期的格式化,和两个日期之间的相减的天数
function getFormatYMD(timesamp){ var date = new Date(timesamp); Y = date.getFullYear() + '-'; M = (d ...
- vue js实现获取两个日期之间所有日期
https://blog.csdn.net/m0_37852904/article/details/85790793 // 计算续住的总日期列表 getAll(begin, end) { let ar ...
- js实现获取两个日期之间所有日期最简单的方法
Date.prototype.format = function() { var s = ''; var mouth = (this.getMonth() + 1)>=10?(this.getM ...
- js实现获取两个日期之间所有日期的方法
function getDate(datestr){ var temp = datestr.split("-"); var date = new Date(temp[0],temp ...
- Java获取两个日期之间的所有日期集合
1.返回Date的list private List<Date> getBetweenDates(Date start, Date end) { List<Date> resu ...
- PHP 获取两个日期之间的日期数组/月份数组
function getEmptyArr($s_time,$e_time,$type){ $tmp = array(); if($type=='day'){ $s_time = strtotime($ ...
随机推荐
- <自动化测试方案_3>第三章、怎么样实现自动化测试?(How)
第三章.怎么样实现自动化测试?(How) 自动化测试分为:代码单元自动化测试.API接口自动化测试.UI自动化测试 代码单元自动化测试,一般是无法做到的,因为项目的原因,代码单元是不做自动化,其测试是 ...
- git 入门教程之个性化 git
前情概要 初识 git 时,我们就已经接触过 git 的基本配置,使用 git config 命令配置用户名和邮箱: # 配置当前项目(`local`)的用户名(`snowdreams1006`) g ...
- 服务器 'xxxx' 已被定义为分发服务器。若要将该服务器重新配置为分发服务器,必须首先卸载现有的分发服务
使用AWS DMS(Database Migration Service)将SQL Server数据库同步到AWS的Data Lake上,需要在本地源数据库上配置复制,在配置分发向导最后一步时,遇到下 ...
- 如何定位那些SQL产生了大量的redo日志
在ORACLE数据库的管理.维护过程中,偶尔会遇到归档日志暴增的情况,也就是说一些SQL语句产生了大量的redo log,那么如何跟踪.定位哪些SQL语句生成了大量的redo log日志呢? 下面这篇 ...
- PowerDesigner 12.5 汉化包-CSDN下载
来源 csdn积分下载的. 人们太小家子气,随随便便文件要那么多积分. 地址 链接: https://pan.baidu.com/s/1cwc24Y 密码: cr9k
- 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败
调试别人的存储过程,然后报错了 将 varchar 值 'ACCE5057EC423F7C' 转换成数据类型 int 时失败 这让我一通找.找了一个多小时. 通过这个错可以知道,错误肯定是在联表 字段 ...
- web前端(4)—— 常用标签1
标题标签h1~h6 顾名思义,这些就是把字体设置为大字体的,就如博客园的这个编辑器里的格式: 不信的话我们自己设置看看:好的,从本篇文章开始,我们需要动手了 <!DOCTYPE html> ...
- js 实现动态时间
<span id="timebox"></span> //承载时间的span $(function () { var o ...
- EOS智能合约开发(二):EOS创建和管理钱包
上节介绍了EOS智能合约开发之EOS环境搭建及启动节点 那么,节点启动后我们要做的第一件事儿是什么呢?就是我们首先要有账号,但是有账号的前提是什么呢?倒不是先创建账号,而是先要有自己的一组私钥,有了私 ...
- linux ubuntu 关于vim得一些基本命令
1.vim显示行号 :set number 2. 快捷键 J 向下 K 往上 H 向左 L 向右 ctrl+shift+T 打开新窗口 ctrl+Page Down 所有vim窗口向下切换 ctrl+ ...