【问题标题】:get tomorrows date with jquery and compare用 jquery 获取明天的日期并进行比较
【发布时间】:2013-09-26 10:09:21
【问题描述】:

如何以这种格式获取日期? 28/09/2013

我现在得到的是,

Fri Sep 27 2013 15:19:01 GMT+0530 (Sri Lanka Standard Time)

这是我为得到它而编写的代码..

 var date = new Date();
 var tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000);
 alert(tomorrow);

我需要看看天气,给定的日期是明天。像这样的事情,当我给 28/09/2013 时,它应该在明天提醒。

感谢任何帮助。

注意:我只需要与日期进行比较。 28/09/2013 === 明天

【问题讨论】:

  • 在 JS 中比较日期是一场噩梦。使用date.js 来简化它。
  • @RoryMcCrossan 好的。但是如何从中获取仅日期? 2013 年 9 月 27 日星期五 15:19:01 GMT+0530(斯里兰卡标准时间)
  • 为什么要使用 jquery,一个 dom 操作库来比较日期
  • @mazraara 检查 date.js 的文档,特别是 toString() 方法。
  • @Lepidosteus 还有其他可能吗?

标签: javascript jquery date datetime


【解决方案1】:

您可以尝试以下获取第二天:

var myDate=new Date();
myDate.setDate(myDate.getDate()+1);
// format a date
var dt = myDate.getDate() + '/' + ("0" + (myDate.getMonth() + 1)).slice(-2) + '/' + myDate.getFullYear();
console.log(dt);

这里是演示:http://jsfiddle.net/5Yj3V/3/

【讨论】:

  • 这种情况下能用吗?假设今天是 9 月的最后一天,如果我明天会打印 30 日还是 10 月 1 日?
  • 是的,它会的。它将在 10 月 1 日返回您。事实上,您可以尝试一下,将差异更改为 5 并检查。这是demo
  • 有一个问题...月份返回为一位数,因此这会导致不匹配... 28/09/2013 --- 27/9/2013 .. 应该是 09 不是只有 9 个。
  • @mazraara:更新小提琴并随心所欲地回答。使用:("0" + (myDate.getMonth() + 1)).slice(-2) 它会以 2 位格式给出月份
【解决方案2】:

Moment.js 会很容易地为您做到这一点。

moment().add('days', 1).format('L');

【讨论】:

    【解决方案3】:

    我会使用 DateJS library

    var tomorrow = new Date.today().addDays(1).toString("dd-mm-yyyy"); 
    

    【讨论】:

    • 您可能应该在答案中添加注释,说明这是使用 date.js,而不是本机日期类型可用的方法。
    • 是的。解决方案已修改;)
    • @Nadeem_MK 我需要在页面中包含 date.js 还是可以在 标签中直接使用?
    • <script type="text/javascript" src="date.js"></script>
    【解决方案4】:

    使用 javascript 试试下面的fiddle

    var tomorrow = new Date(); 
    var newdate = new Date();
    var month = (newdate.getMonth()+1);
    newdate.setDate(tomorrow.getDate() + 1);
    if (month < 10)
    {
        month = '0' + (newdate.getMonth()+1);
    }
    
    alert(newdate);
    alert(newdate.getDate() + '/' + month + '/' + newdate.getFullYear());
    

    【讨论】:

    • 这种情况下能用吗?假设今天是 9 月的最后一天,如果我明天会打印 30 日还是 10 月 1 日?
    • 由于 getMonth() 返回 0-11,您必须将值增加 1,即 newdate.getMonth()+1
    • @SaranyaSadhasivam 有问题...月份返回为一位数,因此这会导致不匹配... 28/09/2013 --- 27/9/2013 .. 它应该是09 不仅仅是 9。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多