将日期字符串更改为季节

时间:2019-02-03 03:32:23

标签: javascript

我需要编写一个将日期字符串(2018-05-20)更改为季节的JavaScript代码。我一直以这篇文章作为参考,但是当我输入完整日期时,它将不起作用。

Javascript coding: Input a specific date, Output the season

任何建议将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

您提供的帖子中的代码将一个月转换为一个季节,它不了解如何处理日期字符串。

为了让您的代码处理日期字符串,您需要找到一种从日期字符串中提取日期的方法。一种实现方法是使用Date ADT。日期类具有许多与之关联的方法。一个是getMonth()。这将允许您从字符串中获取月份。但是,getMonth()方法返回一个整数(其中January = 0,December = 12)。因此,您需要在日期上加1。对于switch语句的情况,还需要将数字转换为字符串。您可以在计算月份使用.toString()来完成此操作。

请参见下面的工作示例:

function getSeason() {
  var date = new Date(document.forms.date.month.value);
  var month = (date.getMonth()+1).toString();

  var season = '';
  switch (month) {
    case '12':
    case '1':
    case '2':
      season = 'winter';
      break;
    case '3':
    case '4':
    case '5':
      season = 'spring';
      break;
    case '6':
    case '7':
    case '8':
      season = 'summer';
      break;
    case '9':
    case '10':
    case '11':
      season = 'fall';
      break;
  }
  alert(season);
}
<form name="date">
  <input type="text" name="month" value="2018-05-20" />
  <input type="button" value="Season?" onClick="getSeason()" />
</form>

答案 1 :(得分:0)

您所引用的函数需要传入一个数字月份值,而不是整个日期字符串。最简单的操作是指定所需的日期格式,然后使用split()之类的内容自行解析。

使用您在“ 2018-05-20”中提供的日期格式的工作示例。

    document.getElementById('button').addEventListener("click", function(){
         var month = document.getElementById('date').value.split('-')[1];
        getSeason(month);

      })
      	

  function getSeason(month) {
      var season = '';
      switch(month) {
          case '12':
          case '01':
          case '02':
              season = 'winter';
          break;
          case '03':
          case '04':
          case '05':
              season = 'spring';
          break;
          case '06':
          case '07':
          case '08':
              season = 'summer';
          break;
          case '09':
          case '10': 
          case '11':
              season = 'fall';
          break;
      }
      document.getElementById('result').innerHTML=season
}
<input type="text" id="date">
<button id="button" type="button">Submit</button>
<div id="result">
</div>