8 回答

TA貢獻1784條經驗 獲得超9個贊
javascript 似乎不能對2014-7-8這樣的格式解析,要么帶前綴0,要么“-”替換成“/”才能正確解析。
function isToday(str){
var d = new Date(str.replace(/-/g,"/"));
var todaysDate = new Date();
if(d.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0)){
return true;
} else {
return false;
}
}
console.log(isToday('2014-7-8'));
console.log(isToday('2014-07-08'));

TA貢獻1785條經驗 獲得超4個贊
只用JavaScript實現,舉一個例子:
//javascript如何獲取當天的時間
function isToday(str){
var d = new Date();
var y = d.getFullYear(); // 2014
var m = d.getMonth() + 1; // 7,月份從0開始的,注意
var d = d.getDate(); // 9
var date_str = y + '-' + m + '-' + d;
return str == date_str;
}
console.log(isToday('2014-7-8'));

TA貢獻1859條經驗 獲得超6個贊
function isToday(date){
var today=new Date(),
//獲取從今天0點開始到現在的時間
todayTime=today.getTime()%(1000*60*60*24),
//獲取要判斷的日期和現在時間的偏差
offset=date.getTime()-today.getTime(),
//獲取要判斷日期距離今天0點有多久
dateTime=offset+todayTime;
if(dateTime<0||dateTime>1000*60*60*24){
return false;
}else{
return true;
}
}
isToday(new Date('2013-7-8'));
isToday(new Date('2014-7-8'));
isToday(new Date('2015-7-8'));
isToday(new Date());
isToday(new Date(123465));

TA貢獻1820條經驗 獲得超9個贊
首先用chrome的控制臺試了一下 '2014-7-8'和 '2014-07-08'都可以解析成功
導致題主這樣子解析失敗的是 引用對象用雙等號判斷地址而不是值
return new Date(str).getTime() == new Date().setHours(0, 0, 0, 0);

TA貢獻1942條經驗 獲得超3個贊
function isToday(date){
var today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
today.setMilliseconds(0);
var offset=date.getTime()-today.getTime()
return offset>=0&&offset<=1000*60*60*24
}

TA貢獻1898條經驗 獲得超8個贊
Date對象有個toLocaleDateString方法可以獲取日期部分的字符串,像這樣:
function isToday(date){
var today = new Date().toLocaleDateString();
var date = new Date(date).toLocaleDateString();
return today == date;
}
添加回答
舉報