[英]Javascript: wrong date calculation
因此,我刚刚发布了有关此代码的问题(已得到回答):
$(document).ready(Main);
function Main() {
ConfigDate();
}
function ConfigDate() {
var currentTime = new Date();
var dayofWeek = currentTime.getDay();
var daysSinceThursday = (dayofWeek + 3) % 7
var lastThursday = new Date(currentTime.getDate() - daysSinceThursday);
var dd = lastThursday.getDate();
var mm = lastThursday.getMonth() + 1;
var yyyy = lastThursday.getFullYear();
$("#last_thursday").text(yyyy + " / " + mm + " / " + dd);
}
现在的问题是,我的单元格中出现的日期是1969/12/31(甚至不是星期四)。
在计算上星期四的日期时我做错什么了吗?
这是因为.getDate()
返回该月的某天。 因此,您要根据小于30的序列号来建立日期,甚至连秒数都不会超过1。
使用.setDate()
而不是建立新日期:
date.setDate(date.getDate() - daysSinceThursday);
.setDate()
将修改您现有的日期对象,不会返回新日期。
您正在尝试仅基于最后一个星期四的月份中的日期设置日期。 尝试这样的事情:
var daysSinceThursday = (dayofWeek + 3) % 7;
var lastThursday = new Date(currentTime.getTime());
lastThursday.setDate(currentTime.getDate() - daysSinceThursday);
var dd = lastThursday.getDate();
var mm = lastThursday.getMonth() + 1;
var yyyy = lastThursday.getFullYear();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.