我需要编写一个将日期字符串(2018-05-20)更改为季节的JavaScript代码。我一直以这篇文章作为参考,但是当我输入完整日期时,它将不起作用。
Javascript coding: Input a specific date, Output the season
任何建议将不胜感激。
谢谢。
答案 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>