Javascript 如何比较没有年份的两个日期?只有一个月和一天

Javascript 如何比较没有年份的两个日期?只有一个月和一天,javascript,jquery,html,css,javaquery,Javascript,Jquery,Html,Css,Javaquery,我有一个函数,它可以获取生日(只有天和月),并比较它是否在两个日期之间 newsigndate未定义。为什么?还有AriesFrom和AriesTo 怎么办 我想根据日期和月份比较出生日期,例如21/3>21/2 对 返回白羊座 谢谢 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script> function yourS

我有一个函数,它可以获取生日(只有天和月),并比较它是否在两个日期之间 newsigndate未定义。为什么?还有AriesFrom和AriesTo

怎么办

我想根据日期和月份比较出生日期,例如21/3>21/2

返回白羊座

谢谢

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>

function yourSign() {
  var signDate = $("input[name='birthDate']").val();
  tempsignDate = signDate.split("-").join("/");
  newsignDate = tempsignDate.substring(5, 10);

  var AriesDateFrom = "21/03";
  var AriesDateTo = "20/04";

  var Ad1 = AriesDateFrom.split("/");
  var Ad2 = AriesDateTo.split("/");

  var s = newsignDate.split("/");
  //var date = new Date().getDay() + "/" + new Date().getMonth() + 1 

  var AriesFrom = new Date(Ad1[1], Ad2[2]);


  newsignDate = new Date(s[1], s[2]);

  if (newsignDate == "") {
    alert("enter birthday");

  } else if (newsignDate >= AriesFrom && newsignDate < AriesTo) {
    $("#output").val("Aries");

  }
}

</script>

函数yourSign(){
var signDate=$(“输入[name='birthDate']”)val();
tempsignDate=signDate.split(“-”).join(“/”);
newsignDate=tempsignDate.substring(5,10);
var AriesDateFrom=“21/03”;
var AriesDateTo=“20/04”;
var Ad1=AriesDateFrom.split(“/”);
var Ad2=AriesDateTo.split(“/”);
var s=newsignDate.split(“/”);
//变量日期=新日期().getDay()+“/”+新日期().getMonth()+1
var AriesFrom=新日期(Ad1[1],Ad2[2]);
newsignDate=新日期(s[1],s[2]);
如果(newsignDate==“”){
警惕(“输入生日”);
}else if(newsignDate>=AriesFrom&&newsignDate
这里有一个小提示,可以帮助您以不同的方式思考这个问题:

与其考虑一堆日期范围,不如考虑该范围内最后日期的列表。现在,您可以浏览该列表并找到第一个大于或等于您的日期的列表。(比较日期更容易,因为它们是
MMDD
格式)

在实践中,一种方法是使用数组的
find()
函数
查找比给定日期大的第一个日期:

//标志和最后截止日期列表
让符号=['摩羯座','0119'],
[‘宝瓶座’、‘0218’],
[‘双鱼座’、‘0320’],
[‘白羊座’、‘0420’],
[‘金牛座’、‘0521’],
[‘双子座’、‘0621’],
[‘癌症’、‘0722’],
[Leo','0822'],
[处女座,0921'],
[‘天秤座’、‘1022’],
[‘天蝎座’、‘1121’],
射手座,1220年,
[‘摩羯座’、‘1231’]]
//1月1日
console.log(signs.find(s=>s[1]>='0101'))
//三月十日
console.log(signs.find(s=>s[1]>='0310'))
//9月29日
console.log(signs.find(s=>s[1]>='0929'))
//12月31日

console.log(signs.find(s=>s[1]>='1231'))
这里有一个小技巧,可以帮助您以不同的方式思考这个问题:

与其考虑一堆日期范围,不如考虑该范围内最后日期的列表。现在,您可以浏览该列表并找到第一个大于或等于您的日期的列表。(比较日期更容易,因为它们是
MMDD
格式)

在实践中,一种方法是使用数组的
find()
函数
查找比给定日期大的第一个日期:

//标志和最后截止日期列表
让符号=['摩羯座','0119'],
[‘宝瓶座’、‘0218’],
[‘双鱼座’、‘0320’],
[‘白羊座’、‘0420’],
[‘金牛座’、‘0521’],
[‘双子座’、‘0621’],
[‘癌症’、‘0722’],
[Leo','0822'],
[处女座,0921'],
[‘天秤座’、‘1022’],
[‘天蝎座’、‘1121’],
射手座,1220年,
[‘摩羯座’、‘1231’]]
//1月1日
console.log(signs.find(s=>s[1]>='0101'))
//三月十日
console.log(signs.find(s=>s[1]>='0310'))
//9月29日
console.log(signs.find(s=>s[1]>='0929'))
//12月31日

console.log(signs.find(s=>s[1]>='1231'))
如果语句变量替换为这些js文件代码。。我想你的要求已经满足了,。多谢各位

app.js:

function yourSign() {

  var signDate = $("input[name='birthDate']").val();
  tempsignDate = signDate.split("-").join("/");
  newsignDate = tempsignDate.substring(5, 10);


  var AriesDateFrom = "03/21";
  var AriesDateTo = "04/20";

  var Ad1 = AriesDateFrom.split("/");
  var Ad2 = AriesDateTo.split("/");
  var s = newsignDate.split("/");

  if(newsignDate == "") {
    alert("enter birthday");

  } 
  else if(s >= Ad1 && s < Ad2) {
    //$("#output").val("Aries");
    alert("Aries");
  }
  else
  {
    alert("not between");
  }}
函数yourSign(){
var signDate=$(“输入[name='birthDate']”)val();
tempsignDate=signDate.split(“-”).join(“/”);
newsignDate=tempsignDate.substring(5,10);
var AriesDateFrom=“03/21”;
var AriesDateTo=“04/20”;
var Ad1=AriesDateFrom.split(“/”);
var Ad2=AriesDateTo.split(“/”);
var s=newsignDate.split(“/”);
如果(newsignDate==“”){
警惕(“输入生日”);
} 
如果(s>=Ad1&&s
HTML文件:

<form>
    <input type="date" name="birthDate">
    <input type="submit" name="submit" value="submit" onclick="yourSign();">
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="app.js"></script>

在else if语句中,用这些js文件代码替换变量。。我想你的要求已经满足了,。多谢各位

app.js:

function yourSign() {

  var signDate = $("input[name='birthDate']").val();
  tempsignDate = signDate.split("-").join("/");
  newsignDate = tempsignDate.substring(5, 10);


  var AriesDateFrom = "03/21";
  var AriesDateTo = "04/20";

  var Ad1 = AriesDateFrom.split("/");
  var Ad2 = AriesDateTo.split("/");
  var s = newsignDate.split("/");

  if(newsignDate == "") {
    alert("enter birthday");

  } 
  else if(s >= Ad1 && s < Ad2) {
    //$("#output").val("Aries");
    alert("Aries");
  }
  else
  {
    alert("not between");
  }}
函数yourSign(){
var signDate=$(“输入[name='birthDate']”)val();
tempsignDate=signDate.split(“-”).join(“/”);
newsignDate=tempsignDate.substring(5,10);
var AriesDateFrom=“03/21”;
var AriesDateTo=“04/20”;
var Ad1=AriesDateFrom.split(“/”);
var Ad2=AriesDateTo.split(“/”);
var s=newsignDate.split(“/”);
如果(newsignDate==“”){
警惕(“输入生日”);
} 
如果(s>=Ad1&&s
HTML文件:

<form>
    <input type="date" name="birthDate">
    <input type="submit" name="submit" value="submit" onclick="yourSign();">
</form>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="app.js"></script>

谢谢@bhavesh ajani,而不是alert,我需要输出在输出字段中

<script>
function yoursign()
 if (s >= Ad1 && s < Ad2) {
output = "Aries";       

$("#output").val(output);

</script>
<body>

函数yoursign()
如果(s>=Ad1&&s
生日

        <button onclick="yourSign()" id="send">send</button><br />


        <label>yoursign: </label><br />

        <input type="text" name="output" id="output" />
发送
您的签名:

谢谢!@bhavesh ajani我需要的不是提醒,而是输出将在输出字段中

<script>
function yoursign()
 if (s >= Ad1 && s < Ad2) {
output = "Aries";       

$("#output").val(output);

</script>
<body>

函数yoursign()
如果(s>=Ad1&&s
生日

        <button onclick="yourSign()" id="send">send</button><br />


        <label>yoursign: </label><br />

        <input type="text" name="output" id="output" />
发送
您的签名:

你不能,因为二月在闰年有不同的天数,所以你需要一年才能准确……或者,只选择非闰年,大部分时间都是正确的。你不能,因为二月在闰年有不同的天数,所以你需要一年才能准确……或者,只选择非闰年,大部分时间都是正确的e time谢谢!我需要的不是警告,而是输出将在输出字段中。否则如果(s>=Ad1&&s
send
yoursign:
确定