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($ ... 
随机推荐
- AndroBench手机性能测试
			AndroBench是一个基准测试应用程序,可以衡量你的Android设备的存储性能. AndroBench提供两种方式,第一种可以快速与其他设备的存储进行比较. 第二种 SQLite可以查询数据库表 ... 
- Java:注解Annotation(元数据)
			本文内容: 注解Annotation的介绍 基本注解的用法 自定义注解 首发日期:2018-07-28 注解Annotation的介绍 Annotation是代码中的特殊标记,能够在编译.类加载.运行 ... 
- Nginx 安装与部署配置以及Nginx和uWSGI开机自启
			下载 官方网站:https://nginx.org/en/download.html Windows下安装 安装 下载后解压(切记不能含有中文路径!!),文件结构如图(我解压的路径就有中文,记得拷贝放 ... 
- C# 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集
			1.在项目解决方案中,找到项目的app.config文件 
- Python PEP-8编码风格指南中文版
			#PEP 8 – Python编码风格指南 PEP: 8 Title: Style Guide for Python Code Author: Guido van Rossum , Barry War ... 
- SMB协议原理抓包分析
			SMB协议原理抓包分析 目录: 1.SMB概述 2.SMB原理 3.SMB配置 一.SMB概述 SMB(全称是Server Message Block)是一个协议名,可用于在计算机间共享文件.打印机. ... 
- shell read变量的读入
			shell变量的输入: shell变量除了可以直接赋值或脚本传参外,还可以使用read命令从标准输入获取,read为bash内置命令,可以通过help read查看帮助. 语法格式: read [参数 ... 
- python3 之视频抽针
			import cv2 import os Path = "C:/Users/zl3269/Desktop/test/video/" # 视频的格式 /aisg-server/Dat ... 
- 【Linux基础】VI命令模式下删除拷贝与粘贴
			在VI命令模式下:y 表示拷贝, d 表示删除,p标识粘贴 1.删除 dw 表示删除从当前光标到光标所在单词结尾的内容. d0 表示删除从当前光标到光标所在行首的内容. d$ 表示删除从当前光标到光标 ... 
- nginx: [emerg] unknown directive "stub_status" in /usr/local/openresty/nginx/conf/conf.d/ngx_metric.conf:19
			问题分析 Nginx没有添加modules/ngx_http_stub_status_module.o模块. 问题解决 没有安装的话,可以在tar包安装编译的时候添加如下参数: # ./configu ... 
