Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用js显示日期,具体取决于该月的最后一天_Javascript_Jquery - Fatal编程技术网

Javascript 使用js显示日期,具体取决于该月的最后一天

Javascript 使用js显示日期,具体取决于该月的最后一天,javascript,jquery,Javascript,Jquery,我无法显示正确的日期。如果今天是这个月的最后一天,时间是晚上20:00或更多,我想显示tommorow date 我已经试过了,但是没有任何效果 function isLastDay(dt) { return new Date(dt.getTime() + 86400000).getDate() === 1; } 功能转换日{ var d=新日期; d、 setHoursd.getHours+d.getTimezoneOffset/60+3; d、 设定日期31; d、 se

我无法显示正确的日期。如果今天是这个月的最后一天,时间是晚上20:00或更多,我想显示tommorow date

我已经试过了,但是没有任何效果

function isLastDay(dt) {
      return new Date(dt.getTime() + 86400000).getDate() === 1;
  }
功能转换日{ var d=新日期; d、 setHoursd.getHours+d.getTimezoneOffset/60+3; d、 设定日期31; d、 setHours20; var day=d.getDate; var hrs=d.getHours; var min=d.getMinutes; var sec=d.getSeconds; var dayString='today'; var mnt=新阵列1月、2月、3月、4月、5月、, 六月、七月、八月、九月、十月、十一月、十二月; var lastday=new Datenew Date.getFullYear,new Date.getMonth+1,0.getDate; 如果hrs==19&&min>45 | | hrs>19{ 天=天+1; dayString='明天'; } 如果日期===最后一天{ $.start-web.htmlday++mnt[d.getMonth+1,0]; }否则{ $.start-web.htmlday++mnt[d.getMonth]; } $.start-web-d.htmldayString; } setIntervalchangeDay,1000; 开始 20:00


我看到你有lastday变量,但我看不出你是如何使用它的。您需要进行一些检查,以查看当前日期是否为31日。

此逻辑应该就是您所需要的:如果明天是第1天,那么今天是一个月的最后一天,如果date getHours方法返回20或更大,您应该已经满足了您的条件

const dt=新日期; const明天=new Datedt.getTime+60*60*24*1000.getDate; 如果明天===1&&dt.getHours>=20{ console.log“符合标准!”; }否则{ console.logdt,明天; } 只需将===运算符更改为>=

解释 在这一行之前:

if (((hrs == 19) && (min > 45)) || (hrs > 19))
您的日值是31,然后它将日值加1,因为条件满足,所以在if-else范围之后,日值是32


然后比较32天和31天的最后一天,因此不符合条件,而是显示为1月32日。

一个月的最后一天晚上20:00与一个月的第一天相同-4小时我们可以使用它创建一个函数来检查我们是否超过了该日期:

function lastMinus4(){
  let now = new Date();
  let lastM4 = new Date(now.getFullYear(), now.getMonth() + 1, 1, -4);

  return (now > lastM4);  
}
now变量是当前日期和时间,lastM4是当前年份,当前月份+1是下个月,1是该月的第一天,-4是过去的4小时,是该月的最后一天晚上20:00。另一种方法是使用day作为-1,并将hour设置为20


在上面的日期构造函数中,您使用0作为上个月的最后一天,因此只需在构造函数末尾为小时添加20,您现在就有时间进行检查。

如果小时在条件范围内,则将1作为整数添加到日期。不要那样做。改为在Date对象中添加一天。谢谢你,你的回答对我帮助很大!
function lastMinus4(){
  let now = new Date();
  let lastM4 = new Date(now.getFullYear(), now.getMonth() + 1, 1, -4);

  return (now > lastM4);  
}