Javascript中的月/日比较

时间:2018-06-06 15:09:37

标签: javascript php

我不是JavaScript方面的专家,但我的任务是将一个编码为PHP的大型网站迁移到一个不允许服务器端语言的新CMS中。因此,我花了很多时间将许多PHP日期计算转换为JavaScript。

PHP中非常简单:

<?php 
if (date('md') < 816) {$award_year = date('Y');}
if (date('md') > 815) {$award_year = date('Y') + 1;}
/*echo "year ".$award_year;*/
?>

这允许应用程序在8月15日之后自动更改为明年。

我一直试图用Javascript重新创建这个效果,这就是我想出的:

var today = new Date();
var mm = today.getMonth()+1; //January is 0! 
var dd = today.getday();
if (mm < 10) {
    mm = '0'+mm
} 

currDate = mmdd;
var currDate = new Date(); 
var appDate = new Date("0816");

if (currDate < appDate){
var printDate = theDate.getFullYear();  
}

else if (currDate >= appDate){
var printDate = theDate.getFullYear()+1;      
}

我知道我遗漏了一些东西,因为var currDate不能只是= mmdd,然后再与另一个日期进行比较。有人可以帮助我下一步吗?我试图真正学习JavaScript,而不是盲目地修复问题。

3 个答案:

答案 0 :(得分:3)

您可以检查当前日期和月份,以确定返回哪一年,而不是组合字符串并比较两个日期。

例如,

function getAwardYear() {
  const today = new Date()
  const AUGUST = 7

  if (today.getMonth() >= AUGUST && today.getDate() > 15) {
    return today.getFullYear() + 1
  }

  return today.getFullYear()
}

// Today: 6th Jun 2018
getAwardYear() // 2018

// Today: 16th Aug 2018
getAwardYear() // 2019

答案 1 :(得分:3)

这看起来与您的PHP代码类似:

const date = new Date();
const day = date.getUTCDate();
const month = date.getMonth();
const md = month + "" + day;

if (md < 816) {
	var award_year = date.getFullYear();
}
else if (md > 815) {
	var award_year = date.getFullYear() + 1;
}

console.log(award_year);

答案 2 :(得分:1)

我知道有很多东西可以即兴发挥下面的代码......我要留给你即兴发挥......

&#13;
&#13;
$("#highway_dropdown").selectmenu("refresh");
&#13;
&#13;
&#13;