利用JavaScript实现一个日期范围选择器

 更新时间:2024年01月22日 09:08:14   作者:刻刻帝的海角  
日期范围选择器是一个常见的Web应用功能,它允许用户选择一个日期范围,本文我们将使用JavaScript来实现这个功能,感兴趣的小伙伴可以了解下

日期范围选择器是一个常见的Web应用功能,它允许用户选择一个日期范围。在本篇文章中,我们将使用JavaScript来实现这个功能。

一、实现思路

创建一个开始日期输入框和一个结束日期输入框。

添加事件监听器,监听开始日期输入框和结束日期输入框的输入事件。

当用户在输入框中输入日期时,验证输入的日期是否合法,如果合法,则更新日期范围。

提供清除日期范围的功能

二、代码实现 

<!DOCTYPE html>  
<html>  
<head>  
    <title>日期范围选择器</title>  
</head>  
<body>  
    <!-- 开始日期输入框 -->  
    <label for="start-date">开始日期:</label>  
    <input type="date" id="start-date" oninput="validateDateRange()"> <!-- 当输入框内容变化时,调用validateDateRange函数 -->  
    <br>  
    <!-- 结束日期输入框 -->  
    <label for="end-date">结束日期:</label>  
    <input type="date" id="end-date" oninput="validateDateRange()"> <!-- 当输入框内容变化时,调用validateDateRange函数 -->  
    <br>  
    <!-- 清除日期范围按钮 -->  
    <button onclick="clearDateRange()">清除日期范围</button> <!-- 当按钮被点击时,调用clearDateRange函数 -->  
    <p id="date-range"></p> <!-- 用于显示日期范围的段落 -->  
  
    <script>  
        // 验证日期范围的函数  
        function validateDateRange() {  
            // 获取开始日期和结束日期的值,并尝试将它们转换为Date对象  
            var startDate = new Date(document.getElementById("start-date").value);  
            var endDate = new Date(document.getElementById("end-date").value);  
            // 检查开始日期和结束日期是否有效(不是NaN)  
            var isStartDateValid = !isNaN(startDate.getTime());  
            var isEndDateValid = !isNaN(endDate.getTime());  
            // 如果开始日期和结束日期都有效,则进行下一步验证  
            if (isStartDateValid && isEndDateValid) {  
                // 检查结束日期是否早于开始日期,如果是,则弹出警告并清空结束日期输入框  
                if (endDate < startDate) {  
                    alert("结束日期不能早于开始日期");  
                    document.getElementById("end-date").value = "";  
                } else { // 如果结束日期不早于开始日期,则显示日期范围  
                    document.getElementById("date-range").innerText = "日期范围: " + startDate.toISOString().slice(0, 10) + " - " + endDate.toISOString().slice(0, 10);  
                }  
            } else { // 如果开始日期或结束日期无效,则清空显示区域  
                document.getElementById("date-range").innerText = "";  
            }  
        }  
  
        // 清除日期范围的函数  
        function clearDateRange() {  
            // 清空开始日期和结束日期输入框的值  
            document.getElementById("start-date").value = "";  
            document.getElementById("end-date").value = "";  
            // 清空显示区域的内容  
            document.getElementById("date-range").innerText = "";  
        }  
    </script>  
</body>  
</html>

为了将当前日期转换为农历日期,我们需要使用一个外部库,例如 "lunar-js"。以下是如何使用这个库来实现这个功能:

首先,安装 "lunar-js" 库:

npm install lunar-js

然后,在HTML中引入这个库:

<script src="node_modules/lunar-js/dist/lunar.min.js"></script>

接下来,添加一个新的函数来将当前日期转换为农历日期

<script>  
    // 引入lunar库  
    const Lunar = window.Lunar;  
    // 创建Lunar实例  
    const lunar = new Lunar();  
  
    // 转换当前日期为农历日期的函数  
    function getLunarDate() {  
        const currentDate = new Date(); // 获取当前日期  
        const lunarDate = lunar.convertSolarToLunar(currentDate); // 将当前日期转换为农历日期  
        return lunarDate; // 返回农历日期  
    }  
</script>

现在,你可以在HTML中调用这个函数并显示农历日期:

<p id="lunar-date"></p> <!-- 用于显示农历日期的段落 -->  
<script>  
    document.getElementById("lunar-date").innerText = getLunarDate().getLongYear() + "年" + getLunarDate().getMonth() + "月" + getLunarDate().getDay() + "日"; // 显示农历日期和月份  
</script>

到此这篇关于利用JavaScript实现一个日期范围选择器的文章就介绍到这了,更多相关JavaScript日期选择器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 小程序点餐页吸顶滚动实现完整代码

    小程序点餐页吸顶滚动实现完整代码

    :原生小程序吸顶功能能够自动吸附在顶部,无需用户手动滑动返回,提高了用户浏览页面的流畅度和便捷性,下面这篇文章主要介绍了小程序点餐页吸顶滚动实现的相关资料,需要的朋友可以参考下
    2026-05-05
  • 简单封装js的dom查询实例代码

    简单封装js的dom查询实例代码

    下面小编就为大家带来一篇简单封装js的dom查询实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-07-07
  • JavaScript静态作用域和动态作用域实例详解

    JavaScript静态作用域和动态作用域实例详解

    这篇文章主要介绍了JavaScript静态作用域和动态作用域的实例代码,本文通过文字实例代码相结合的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • JavaScript计算字符串实际长度方法示例

    JavaScript计算字符串实际长度方法示例

    这篇文章主要为大家介绍了JavaScript计算字符串实际长度方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • 第一篇初识bootstrap

    第一篇初识bootstrap

    Bootstrap是twitter的工程师在业余时间开发的,是一款目前非常流行的前端框架。本文给大家介绍第一篇初识bootstrap的相关知识,非常不错具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-06-06
  • 在Javascript中定义对象类别

    在Javascript中定义对象类别

    在Javascript中定义对象类别...
    2006-12-12
  • Ionic 2 实现列表滑动删除按钮的方法

    Ionic 2 实现列表滑动删除按钮的方法

    这篇教程将展示如何使用Ionic2添加一个简单的删除按钮到列表,当用户滑动列表项到左边的时候。这是一个处理删除列表数据时候常用的模式,具体内容大家通过本文学习吧
    2017-01-01
  • 分享一些不常见却很实用的JS技巧

    分享一些不常见却很实用的JS技巧

    有些代码,需要的时候能写的出来,但是也需要时间,如果有的东西长时间不接触,再次看的时候也会感觉很陌生,这篇文章主要给大家介绍了一些不常见却很实用的JS技巧,既可以作为一个知识的积累,又可以作为闲暇时打发时间写写代码的记录,需要的朋友可以参考下
    2021-11-11
  • 用Javascript实现Sleep暂停功能代码

    用Javascript实现Sleep暂停功能代码

    ie和firefox都可以使用,有兴趣可以试试
    2010-09-09
  • 浅谈javascript事件取消和阻止冒泡

    浅谈javascript事件取消和阻止冒泡

    这篇文章主要介绍了浅谈javascript事件取消和阻止冒泡的方法和示例,有需要的小伙伴可以参考下。
    2015-05-05

最新评论