Javascript日期计算

时间:2011-04-14 13:30:50

标签: javascript

我有日期字段,Onclick on date feild,我必须用当前日期计算日期。如果输入的日期比今天的日期早一个月。我必须弹出消息说日期是1个月的日期。

日期格式为“yyyy-MM-dd”。我希望将日期“1984-03-20”与今天的日期“2011-04-14”进行比较。它应该返回月数。

有关此的任何提示。 的问候,

Chaitu

7 个答案:

答案 0 :(得分:3)

请参阅此discussion它有在javascript中获取日期差异的演示。 这也是一个很好的例子:javascript-date-difference-calculation它显示了如何在一个月,一周或一年中获得差异。

答案 1 :(得分:2)

也许这对你有帮助:

http://www.ozzu.com/programming-forum/javascript-date-comparison-t46552.html

<script language="JavaScript">

var days = 0;
var difference = 0;

Christmas = new Date("December 25, 2005");

today = new Date();

difference = Christmas - today;

days = Math.round(difference/(1000*60*60*24));

</script>

答案 2 :(得分:2)

比较javascript中日期的最简单方法是首先将其转换为Date对象,然后比较这些日期对象。

在下面找到具有以下功能的对象:

dates.inRange (d,start,end)

Returns a boolean or NaN:

    * true if d is between the start and end (inclusive)
    * false if d is before start or after end.
    * NaN if one or more of the dates are illegal.

答案 3 :(得分:0)

var dt = new Date('02 Jul 2009');
dt.setMonth(dt.getMonth() – 1);

您可以阅读有关js Date对象的内容,了解它可以接受的格式。

A blog about JS Date formats

答案 4 :(得分:0)

你可以这样做:

   <script type="text/javascript">

        function checkdate (){

           var today = new Date()

           var dating = document.getElementById("date").attr("value");

           var new = new Date(dating);

           var diff = today - new;

           var days = Math.round(diff/(1000*60*60*24));

           if (days >= 30){

                alert("more than one month!");
           }
      }

    </script>

    <html><body>
       <input type="text" id="date" onClick="checkdate();"/>
    </html></body>

答案 5 :(得分:0)

这样可行。将字段的值传递给dateString onclick,代码将确定日期是否超过1个月。

var dateString = '3/26/2011';
var selectDate = new Date(dateString); // convert string to date
var monthOld = new Date();

monthOld.setDate(monthOld.getDate() - 30); // subtract 30 days

if (selectDate < monthOld) {
    alert('older than one month');
}
else alert('ok');

演示:http://jsfiddle.net/cw4vb/

答案 6 :(得分:0)

首先,我建议您将需求调整为30天。这可能对您的用户来说很好,对您和他们来说都是明确的。 1个月的长度可能会有所不同,具体取决于一年中的时间。

开始解决方案
var millisecond = 1;
var second = 1000;
var minute = second * 60;
var hour = minute * 60;
var day = hour * 24;
var week = day* 7;

然后在日期条目中执行此操作

if (usersDate < new Date().getTime() - 30 * day) {
   //Do popup / whatever
}

或者,如果你真的想做基于月的间隔,那么

var now = new Date();
if (usersDate < now.setMonth(now.getMonth() - 1))) {
 //Do popup / whatever
}