# 小型网页应用:日期输入与天气信息显示


引言

本项目旨在实现一个小型网页应用,用户可在输入框中输入日期,系统自动显示当日天气信息。该项目采用HTML、CSS和JavaScript实现,无需依赖第三方库,具备良好的交互性和可维护性。

思路分析

  1. 数据处理与格式化
    用户输入日期后,系统需将其解析为日期对象,并根据日期生成天气信息。解析日期时,需考虑年月日的格式,例如 "2023-10-05"
    格式化天气信息时,需将数据转换为用户可读的格式,例如 “晴,气温22°C”。

  2. 交互逻辑

    • HTML表单元素包含日期输入框和天气结果区域。
    • JavaScript监听输入日期的事件,解析并渲染结果。

代码实现

1. HTML 结构

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>天气预报</title>
  <style>
    body {
      font-family: Arial, sans-serif;
      padding: 20px;
    }
    #weather {
      margin-top: 20px;
    }
  </style>
</head>
<body>
  <h2>输入日期并查看天气</h2>
  <input type="date" id="dateInput" placeholder="2023-10-05" />
  <div id="weatherContainer"></div>

  <script>
    // 日期输入事件监听
    document.getElementById('dateInput').addEventListener('input', () => {
      const date = new Date();
      const inputDate = document.getElementById('dateInput').value;
      const dateStr = inputDate.replace(/[^0-9]/g, '');
      const result = formatDate(dateStr);
      document.getElementById('weatherContainer').innerHTML = `<p>天气信息:${result}</p>`;
    });
  </script>
</body>
</html>

2. JavaScript 实现

function formatDate(dateStr) {
  // 格式化日期为 "YYYY-MM-DD" 的形式
  const year = dateStr.split('-')[0];
  const month = dateStr.split('-')[1];
  const day = dateStr.split('-')[2];
  return `${year}-${month}-${day}`;
}

3. 总结

本项目通过HTML表单元素实现日期输入功能,结合JavaScript解析日期并生成天气信息,实现了用户交互的简洁性与数据处理的准确性。整个项目具备良好的可扩展性,无需依赖外部库,可独立运行。