tianyunperfect 4 months ago
parent
commit
6757c0c9ef
1 changed files with 184 additions and 0 deletions
  1. 184 0
      simple-demo/memoryDay.html

+ 184 - 0
simple-demo/memoryDay.html

@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>纪念日追踪器</title>
+    <style>
+        body {
+            font-family: 'Microsoft YaHei', Arial, sans-serif;
+            max-width: 800px;
+            margin: 0 auto;
+            padding: 20px;
+            background-color: #f5f5f5;
+            color: #333;
+        }
+        .container {
+            background-color: white;
+            border-radius: 10px;
+            padding: 30px;
+            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
+        }
+        h1 {
+            color: #e74c3c;
+            text-align: center;
+            margin-bottom: 30px;
+        }
+        .info-box {
+            border-left: 4px solid #3498db;
+            padding: 15px;
+            margin: 20px 0;
+            background-color: #f8f9fa;
+        }
+        .time-diff {
+            font-size: 24px;
+            text-align: center;
+            margin: 30px 0;
+            color: #2c3e50;
+        }
+        .time-details {
+            display: flex;
+            justify-content: center;
+            gap: 10px;
+            margin: 20px 0;
+        }
+        .time-unit {
+            text-align: center;
+            background-color: #3498db;
+            color: white;
+            padding: 8px 10px;
+            border-radius: 5px;
+            min-width: 60px;
+        }
+        .time-unit .value {
+            font-size: 24px;
+            font-weight: bold;
+        }
+        .time-unit .label {
+            font-size: 14px;
+        }
+        .error {
+            color: #e74c3c;
+            text-align: center;
+            font-weight: bold;
+        }
+    </style>
+</head>
+<body>
+<div class="container">
+    <h1 id="title">纪念日追踪器</h1>
+
+    <div class="info-box">
+        <p>纪念日: <strong id="event-text">加载中...</strong></p>
+        <p>开始日期: <strong id="start-date">加载中...</strong></p>
+    </div>
+
+    <div class="time-diff" id="time-diff">计算中...</div>
+
+    <div class="time-details">
+        <div class="time-unit">
+            <div class="value" id="years">-</div>
+            <div class="label">年</div>
+        </div>
+        <div class="time-unit">
+            <div class="value" id="months">-</div>
+            <div class="label">月</div>
+        </div>
+        <div class="time-unit">
+            <div class="value" id="days">-</div>
+            <div class="label">日</div>
+        </div>
+    </div>
+</div>
+
+<script>
+    document.addEventListener('DOMContentLoaded', function() {
+        // 获取URL参数
+        const urlParams = new URLSearchParams(window.location.search);
+        const dateStr = urlParams.get('date');
+        const eventText = urlParams.get('text');
+
+        if (!dateStr || !eventText) {
+            document.getElementById('title').textContent = '参数错误';
+            document.getElementById('event-text').textContent = '未提供纪念日文本';
+            document.getElementById('start-date').textContent = '未提供日期';
+            document.getElementById('time-diff').innerHTML = '<span class="error">请提供正确的URL参数: ?date=YYYY-MM-DD&text=纪念日文本</span>';
+            return;
+        }
+
+        // 解析日期
+        const startDate = new Date(dateStr);
+        if (isNaN(startDate.getTime())) {
+            document.getElementById('start-date').textContent = '日期格式错误';
+            document.getElementById('time-diff').innerHTML = '<span class="error">日期格式应为: YYYY-MM-DD</span>';
+            return;
+        }
+
+        // 显示基本信息
+        document.getElementById('event-text').textContent = eventText;
+        document.getElementById('start-date').textContent = formatDate(startDate);
+        document.getElementById('title').textContent = eventText;
+
+        // 计算时间差
+        calculateTimeDifference(startDate);
+
+        // 每天更新一次时间差
+        setInterval(function() {
+            calculateTimeDifference(startDate);
+        }, 86400000); // 24小时
+    });
+
+    function calculateTimeDifference(startDate) {
+        const now = new Date();
+
+        // 计算年月日差
+        let years = now.getFullYear() - startDate.getFullYear();
+        let months = now.getMonth() - startDate.getMonth();
+        let days = now.getDate() - startDate.getDate();
+
+        // 调整负数月份和日期
+        if (days < 0) {
+            months--;
+            // 获取上个月的天数
+            const lastMonth = new Date(now.getFullYear(), now.getMonth(), 0);
+            days += lastMonth.getDate();
+        }
+
+        if (months < 0) {
+            years--;
+            months += 12;
+        }
+
+        // 更新显示
+        document.getElementById('years').textContent = years;
+        document.getElementById('months').textContent = months;
+        document.getElementById('days').textContent = days;
+
+        // 更新总体时间差显示
+        let timeDiffText = '已经过去了 ';
+        if (years > 0) {
+            timeDiffText += years + ' 年 ';
+        }
+        if (months > 0) {
+            timeDiffText += months + ' 个月 ';
+        }
+        if (days > 0) {
+            timeDiffText += days + ' 天';
+        }
+
+        if (years === 0 && months === 0 && days === 0) {
+            timeDiffText = '就是今天!';
+        }
+
+        document.getElementById('time-diff').textContent = timeDiffText;
+    }
+
+    function formatDate(date) {
+        const year = date.getFullYear();
+        const month = (date.getMonth() + 1).toString().padStart(2, '0');
+        const day = date.getDate().toString().padStart(2, '0');
+        return `${year}年${month}月${day}日`;
+    }
+</script>
+</body>
+</html>