热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaScript计算两个日期之间的时间差

本文介绍了一种使用JavaScript计算两个日期之间时间差的方法。该方法支持多种时间格式,并能返回秒、分钟、小时和天数等不同精度的时间差。

在 Javascript 中,计算两个日期之间的时间差是一个常见的需求。本文提供了一个通用的方法来实现这一功能。

该方法支持以下时间格式:

  • 年-月-日 小时:分钟:秒
  • 年/月/日 小时:分钟:秒

返回的时间差可以是秒、分钟、小时或天数。

// 计算时间差
/**
 * 获得时间差,时间格式为 年-月-日 小时:分钟:秒 或者 年/月/日 小时:分钟:秒
 * 其中,年月日为全格式,例如:2010-10-12 01:00:00
 * 返回精度为:秒、分钟、小时、天
 */
function calculateTimeDifference(startTime, endTime, diffType) {
    // 将 xxxx-xx-xx 的时间格式转换为 xxxx/xx/xx 的格式
    startTime = startTime.replace(/-/g, '/');
    endTime = endTime.replace(/-/g, '/');
    
    // 将计算间隔类型字符转换为小写
    diffType = diffType.toLowerCase();
    
    var startDate = new Date(startTime); // 开始时间
    var endDate = new Date(endTime); // 结束时间
    
    // 作为除数的数字
    var divisor = 1;
    
    switch (diffType) {
        case 'second':
            divisor = 1000;
            break;
        case 'minute':
            divisor = 1000 * 60;
            break;
        case 'hour':
            divisor = 1000 * 3600;
            break;
        case 'day':
            divisor = 1000 * 3600 * 24;
            break;
        default:
            break;
    }
    
    return parseInt((endDate.getTime() - startDate.getTime()) / parseInt(divisor));
}

通过上述代码,您可以轻松地计算两个日期之间的精确时间差。此方法适用于各种时间格式,并且可以根据需要返回不同精度的时间差。

参考链接:https://www.cnblogs.com/duanzq/archive/2012/02/03/2336805.html


推荐阅读
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 文章目录Golang定时器Timer和Tickertime.Timertime.NewTimer()实例time.AfterFunctime.Tickertime.NewTicke ... [详细]
  • 本文介绍了一种在ANSI C中动态分配二维数组的方法。通过创建指针数组并为每个指针分配连续空间,可以灵活地管理内存。文章还讨论了一些常见的错误和注意事项。 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • `valueOf` 方法(即 `Object.valueOf`)用于返回指定对象的原始值。如果该对象没有对应的基元值,则直接返回对象本身。此方法在需要将对象转换为基本类型时非常有用,例如在数值运算或字符串拼接等场景中。通过深入了解 `valueOf` 的工作原理及其应用场景,开发者可以更好地处理数据类型转换问题,提高代码的健壮性和可读性。 ... [详细]
author-avatar
Blunt_X
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有