检查日期是否大于一个月的第一个周结束日期
Check if a date is greater than the first week end date of a month
这就是我检查日期是否大于第一周结束日期的方式。
有没有更好的方法?
我还需要检查时间和日期。
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()
)。
其次,您试图将日期视为一个数字,但将最高有效数字(年份)放在末尾,这与它们应该如何排序的内容相反。这适用于您的特定实践,因为在这种情况下,月份和年份将始终相同,但如果您实际上比较任何两个日期,那就是错误的。如果你包括时间,那就特别错误了。在这种情况下,您有两个更好的解决方案
-
将您的日期转换为(tz 一致或 tz 免费)ISO 8601 日期,该日期将正确排序。您可以使用
Date
的toISOString()
方法来执行此操作。 -
使用诸如 Moment.js 之类的库来执行日期操作和比较。
例如,如果您在 now
中有一个 Date 对象,则可以创建一个表示此对象的 Moment 对象
var nowMoment = moment(now);
然后,您可以将其用于各种操作和比较。例如,如果您希望 nowMoment 表示的月份的周末,您可以执行以下操作来获取该月的开始,然后是第一周的结束。
var weekEnd = moment(now).startOf('month').endOf('week');
然后,您可以比较这些。因此,如果您想知道now
变量是否在第一周结束之前,您可以使用类似
var isFirstWeek = nowMoment.isBefore( weekEnd );
相关文章:
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - JS在隐藏未定义的值后仅从数组中返回第一个id的值
- 若在第一个字段中选择了日期,则第二个字段的日期应大于第一个
- JS如何用第一个的minDate动态填充第二个日期选择器
- 如何在关闭第一个UI时打开第二个UI日期选择器