吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1158|回复: 25
收起左侧

[其他原创] html牛马下班时间计算器

[复制链接]
爱挠头 发表于 2024-12-18 17:26
本帖最后由 爱挠头 于 2024-12-18 18:03 编辑

[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>下班时间计算器</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      background-color: #f4f4f4;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      margin: 0;
    }

    h1 {
      margin-bottom: 20px;
    }

    label {
      font-size: 18px;
      margin-bottom: 10px;
    }

    input[type="time"] {
      padding: 10px;
      font-size: 16px;
      border: 1px solid #ccc;
      border-radius: 4px;
      width: 180px;
      text-align: center;
    }

    button {
      background-color: #007bff;
      color: white;
      border: none;
      border-radius: 4px;
      padding: 12px 20px;
      font-size: 16px;
      cursor: pointer;
      margin-top: 20px;
      transition: background-color 0.3s ease;
    }

    button:hover {
      background-color: #0056b3;
    }
  </style>
</head>
<body>
  <h1>牛马下班时间计算器</h1>
  <label for="offTime">请选择下班时间</label>
  <input type="time" id="offTime" />
  <button>计算</button>

  <script>
    function showOffTime() {
      var offTime = document.getElementById('offTime').value;
      if (offTime) {
        alert('预计你今天 ' + offTime + ' 下班');
      } else {
        alert('请输入有效的时间');
      }
    }
  </script>
</body>
</html>

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
kaguyaai + 1 谢谢@Thanks!
奋斗的路程 + 1 + 1 感谢您的宝贵建议,我们会努力争取做得更好!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

aaazhhb 发表于 2024-12-18 17:37
无法输入时间
zhangjuan 发表于 2024-12-19 16:10
各位大佬,为什么不这样设计呢?


[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>下班倒计时</title>
<style>
    body, html {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
        background: url('default_background_image_url_here') no-repeat center center fixed; 
        background-size: cover;
        display: flex;
        justify-content: center;
        align-items: center;
        font-family: Arial, sans-serif;
        color: white;
        transition: background 0.5s ease;
    }
    #countdown {
        font-size: 5em;
        text-shadow: 2px 2px 4px #000000;
    }
    #controls {
        position: absolute;
        bottom: 20px;
        left: 50%;
        transform: translateX(-50%);
    }
    input, button {
        margin: 5px;
        padding: 10px;
        font-size: 1em;
    }
    audio {
        display: block;
        margin-top: 20px;
    }
</style>
</head>
<body>

<div id="countdown">00:00:00</div>
<div id="controls">
    <input type="time" id="offTime" value="18:00">
    <button onclick="setCountdown()">设置下班时间</button>
    <br>
    <input type="file" id="localMusic" accept="audio/*">
    <input type="text" id="musicUrl" placeholder="或输入网络音乐URL">
    <button onclick="loadMusic()">加载音乐</button>
    <br>
    <input type="file" id="backgroundImage" accept="image/*">
    <button onclick="setBackground()">选择背景图</button>
</div>
<audio id="backgroundMusic" controls></audio>

<script>
function setCountdown() {
    const offTime = document.getElementById('offTime').value;
    if (offTime) {
        const [hours, minutes] = offTime.split(':').map(Number);
        let now = new Date();
        let offDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hours, minutes, 0, 0);
        if (now >= offDate) {
            offDate.setDate(offDate.getDate() + 1); // 如果已经过了下班时间,则设定为明天的同一时间
        }
        countdownTo(offDate);
    }
}

function countdownTo(endDate) {
    const countdownElement = document.getElementById('countdown');
    const updateCountdown = () => {
        const now = new Date().getTime();
        const distance = endDate - now;

        let days = Math.floor(distance / (1000 * 60 * 60 * 24));
        let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
        let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
        let seconds = Math.floor((distance % (1000 * 60)) / 1000);

        countdownElement.textContent = `${days ? days + "d " : ""}${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;

        if (distance < 0) {
            clearInterval(interval);
            countdownElement.textContent = "下班时间已到!";
        }
    };

    updateCountdown(); // 立即更新一次
    const interval = setInterval(updateCountdown, 1000);
}

function loadMusic() {
    const localMusic = document.getElementById('localMusic').files[0];
    const musicUrl = document.getElementById('musicUrl').value;
    const backgroundMusic = document.getElementById('backgroundMusic');

    if (localMusic) {
        const url = URL.createObjectURL(localMusic);
        backgroundMusic.src = url;
    } else if (musicUrl) {
        backgroundMusic.src = musicUrl;
    } else {
        alert('请先选择本地音乐或输入网络音乐URL');
    }
}

function setBackground() {
    const backgroundImage = document.getElementById('backgroundImage').files[0];
    if (backgroundImage) {
        const url = URL.createObjectURL(backgroundImage);
        document.body.style.backgroundImage = `url(${url})`;
    } else {
        alert('请选择一张图片作为背景');
    }
}
</script>

</body>
</html>
Bennett77 发表于 2024-12-18 17:41
 楼主| 爱挠头 发表于 2024-12-18 18:04

修改好了,你试一下
 楼主| 爱挠头 发表于 2024-12-18 18:04
Bennett77 发表于 2024-12-18 17:41
直接贴到浏览器F12 console吗?

复制下来,新建一个文本文档后缀改成html就可以了
IT大小白 发表于 2024-12-18 18:25
修改为这样,可以获取时间差
[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html lang="en">
  <!-- https://www.52pojie.cn/thread-1992404-1-1.html -->
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>下班时间计算器</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      background-color: #f4f4f4;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      margin: 0;
    }
 
    h1 {
      margin-bottom: 20px;
    }
 
    label {
      font-size: 18px;
      margin-bottom: 10px;
    }
 
    input {
      padding: 10px;
      font-size: 16px;
      border: 1px solid #ccc;
      border-radius: 4px;
      width: 180px;
      text-align: center;
    }
 
    button {
      background-color: #007bff;
      color: white;
      border: none;
      border-radius: 4px;
      padding: 12px 20px;
      font-size: 16px;
      cursor: pointer;
      margin-top: 20px;
      transition: background-color 0.3s ease;
    }
 
    button:hover {
      background-color: #0056b3;
    }
  </style>
</head>
 
<body>
  
  <h1>牛马下班时间计算器</h1>
  <label for="offTime">请输入下班时间(格式:HH:MM)</label>
  <input type="text" id="offTime" placeholder="HH:MM" style="background-color: white;" />
  <button id="calcButton">计算</button>
  
  <script>
    document.getElementById('calcButton').addEventListener('click', function() {
      var offTimeInput = document.getElementById('offTime').value;
      
      // 检查时间格式是否正确
      if (!/^\d{2}:\d{2}$/.test(offTimeInput)) {
        alert('请输入正确的时间格式,格式应为 HH:MM');
        return;
      }
  
      // 获取当前日期和时间
      var now = new Date();
      var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
  
      // 解析用户输入的下班时间,并创建相应的 Date 对象
      var [hours, minutes] = offTimeInput.split(':').map(Number);
      var offTime = new Date(today);
      offTime.setHours(hours, minutes, 0, 0);
  
      // 如果下班时间小于当前时间,则假设是明天的下班时间
      if (offTime <= now) {
        offTime.setDate(offTime.getDate() + 1);
      }
  
      // 计算时间差
      var diffMs = offTime - now; // 时间差,以毫秒为单位
      var diffMins = Math.floor(diffMs / 60000); // 转换为分钟
      var diffHours = Math.floor(diffMins / 60); // 转换为小时
      diffMins %= 60;
  
      // 弹出时间差信息
      alert('距离下班还有 ' + diffHours + ' 小时 ' + diffMins + ' 分钟');
    });
  </script>
</body>
 
</html>
xxkz 发表于 2024-12-18 18:29
为什么文字都成了问号
 楼主| 爱挠头 发表于 2024-12-18 18:35
xxkz 发表于 2024-12-18 18:29
为什么文字都成了问号

字符要是utf8的
 楼主| 爱挠头 发表于 2024-12-18 18:37
IT大小白 发表于 2024-12-18 18:25
修改为这样,可以获取时间差
[mw_shl_code=html,true]

感谢大佬指正
tryEverything 发表于 2024-12-18 21:40
不错,明早到公司电脑试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-7 20:03

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表