date - javascript 如何判断传入的日期是否是今天
迷茫
迷茫 2017-04-10 14:30:10
[JavaScript讨论组]
//PHP中直接这样使用就可以获取这一天0点0分0秒的时间
$dt = date('Y-m-d');
//javascript如何获取当天的时间
//目的是跟一个字符串比如 2014-7-8 2014-07-08做比较是否是同一天

function isToday(str){
    var d = new Date(str);
    if(d == new Date()){
        return true;
    } else {
        return false;
    }
}


console.log(isToday('2014-7-8'));
console.log(isToday('2014-07-08'));
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(8)
PHPz

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'));
阿神

http://jsfiddle.net/QwQjk/1/

阿神

只用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'));
怪我咯
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));
天蓬老师

首先用chrome的控制台试了一下 '2014-7-8'和 '2014-07-08'都可以解析成功

导致题主这样子解析失败的是 引用对象用双等号判断地址而不是值

return new Date(str).getTime() == new Date().setHours(0, 0, 0, 0);
PHP中文网
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
}
天蓬老师

首先 new Date这种代码是客户端时间不准确
其次 yyyy-mm-dd ff支持这种,但是其它浏览器支持yyyy/mm/dd

高洛峰

Date对象有个toLocaleDateString方法可以获取日期部分的字符串,像这样:

function isToday(date){
    var today = new Date().toLocaleDateString();
    var date = new Date(date).toLocaleDateString();
    return today == date;
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号