繁体   English   中英

Javascript:错误的日期计算

[英]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();

http://jsfiddle.net/rAuRF/3/

暂无
暂无

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

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