Javascript:getDate()加上一个if语句
我试图在javascript上构建一个if语句Javascript:getDate()加上一个if语句,javascript,if-statement,Javascript,If Statement,我试图在javascript上构建一个if语句 if (nextProcessingDate > today ) { //do something } nextProcessingDate分配了一个时间戳,即2014年7月9日12:10:17 我使用以下代码将今天的时间戳分配给today变量 /*script start*/ var today = new Date(); var dd = today.getDate(); var mm = today.ge
if (nextProcessingDate > today ) {
//do something
}
nextProcessingDate分配了一个时间戳,即2014年7月9日12:10:17
我使用以下代码将今天的时间戳分配给today变量
/*script start*/
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1; //January is 0!
var yyyy = today.getFullYear();
var s = today.getSeconds();
var m = today.getMinutes();
var h = today.getHours();
if (dd < 10) {
dd = '0' + dd
}
if (mm < 10) {
mm = '0' + mm
}
if (s < 10) {
s = '0' + s
}
if (m < 10) {
m = '0' + m
}
if (h < 10) {
h = '0' + h
}
today = dd + '/' + mm + '/' + yyyy + ' ' + h + ':' + m + ':' + s;
/*script end*/
谢谢你的帮助,这是小提琴链接
更新
因此,这里是更新的小提琴,它似乎在一定程度上起作用
现在的问题是,当processingdate时间戳等于或超过24小时后,它只返回true,我需要在上午9:30测试它,在这种情况下,它返回false
将时间从下一个处理日期中剥离是否会解决问题?您绝对不应该使用字符串来比较日期 您可以尝试从nextProcessingDate创建日期对象,然后:
var nextProcessingDate = '09/07/2014 12:10:17';
var d = Date.parse(nextProcessingDate);
if (d > (new Date().getTime() + (1000 * 60 * 60 * 24))) {
alert("after");
} else {
alert("before");
}
在JavaScript中,日期处理是一个难题,一旦考虑到跨越午夜、夏时制变化和闰日的时间段,编写自己的解决方案就变得非常棘手 我建议选择一个已建立的数据处理库来完成这类工作 我一直在使用它,发现它非常棒 您的代码将变成:
if(moment(nextProcessingDate).isAfter(moment(today).add('days',1))) {
// do something
}
或者更简洁地说:
if(moment('09/07/2014 14:05:17').isAfter(moment().add('days',1))) {
// do something
}
在var dd=today.getDate()之前代码>可以使您的日期显示在今天之后的一天
将在秒后添加1
如果你只是想检查一个令人兴奋的时间戳是否大于今天的日期+1天,你应该像你在这个月所做的那样。所以如果我09岁的那天,dd会变成10岁
如果我没弄错你的问题,试试这个:
var dd = today.getDate() + 1;
使用setDate
检查此选项。选中此项,不要将日期作为字符串进行比较。一个什么?1毫秒?谢谢Dan,恐怕我不能使用任何库。如果我将nextProcessingDate更改为08/07/2014 11:00:17,它仍然会显示after而不是Before看到这把小提琴-08/07/2014 11:00:17是2014年8月7日-我得到after…现在的问题是,它只返回真的processingdate时间戳等于或超过24小时,我需要在上午9:30测试它,在这种情况下它返回false,我想是因为从现在起不是一整天了吧?
today.setDate(today.getDate() + 1);
if (nextProcessingDate > (today + 1){
//do something
}
var dd = today.getDate() + 1;