繁体   English   中英

JavaScript中的月/日比较

[英]Month/Day comparison in Javascript

我不是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,而不仅仅是盲目地解决问题。

无需组合字符串并比较两个日期,您可以检查当前日期和月份以确定要返回的年份。

例如,

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

这看起来类似于您的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); 

我知道有很多事情可以改进下面的代码...我留给您自己改进...

 var today = new Date(); var mm = today.getMonth()+1; //January is 0! var dd = today.getDay(); if (mm < 10) { mm = '0'+mm } var yyyy="2018" var currDate = new Date(yyyy+"-"+mm+"-"+dd); var appDate = new Date("2018-01-16"); alert("appDate"+appDate); alert("currDate"+currDate); if (currDate < appDate){ var printDate = currDate.getFullYear(); alert(printDate); } else if (currDate >= appDate){ var printDate = appDate.getFullYear()+1; alert(printDate); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM