gpt4 book ai didi

javascript - 检查日期是否大于每月的第一个周末结束日期

转载 作者:行者123 更新时间:2023-12-02 14:55:33 33 4
gpt4 key购买 nike

这就是我检查日期是否大于第一周结束日期的方法。

有更好的方法吗?

我还需要检查时间和日期。

function getTodayDate() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();

if (dd < 10) {
dd = '0' + dd
}

if (mm < 10) {
mm = '0' + mm
}

today = dd + '/' + mm + '/' + yyyy;

return today;
}

function getFirstWeekDate() {
var today = new Date();
var dd = "7";
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();

if (dd < 10) {
dd = '0' + dd
}

if (mm < 10) {
mm = '0' + mm
}

return dd + '/' + mm + '/' + yyyy;
}

var startDate = getTodayDate();
var endDate = getFirstWeekDate();

var regExp = /(\d{1,2})\/(\d{1,2})\/(\d{2,4})/;

if (parseInt(endDate.replace(regExp, "$3$2$1")) < parseInt(startDate.replace(regExp, "$3$2$1")))
{

}

最佳答案

您的方法存在几个问题。

首先,您实际上并没有检查周末的日期。您只是将其与第七天进行比较,因此您实际上是在检查该日期是否是该月的前六天之一,并且有更好的方法来检查(例如调用 getDate() )。

其次,您尝试将日期视为数字,但将最高有效数字(年份)放在末尾,这与它们应如何排序的方式相反。这对于您的特定实践来说没问题,因为在这种情况下月份和年份总是相同的,但如果您实际上比较任何两个日期,那就是错误的。如果你把时间也算进去,那就特别错误了。在这种情况下,你有两个更好的解决方案

  1. 将日期转换为(tz 一致或 tz 无)ISO 8601 日期,这样可以正确排序。您可以使用 toISOString()方法Date这样做。

  2. 使用诸如Moment.js之类的库进行日期操作和比较。

例如,如果您在 now 中有一个 Date 对象,您可以创建一个表示此的 Moment 对象

var nowMoment = moment(now);

然后您可以将其用于各种操作和比较。例如,如果您想要 nowMoment 表示的月份的周末,您可以执行以下操作来获取该月的开始,然后获取第一周的结束

var weekEnd = moment(now).startOf('month').endOf('week');

然后您可以比较这些。所以如果你想知道 now 是否变量是在第一周结束之前,您可以使用类似的内容

var isFirstWeek = nowMoment.isBefore( weekEnd );

关于javascript - 检查日期是否大于每月的第一个周末结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35841937/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com