使用日期差异输出字符串

时间:2015-03-03 15:19:09

标签: javascript jquery date datepicker

我正在创建一个可以注册狗的网站 在注册表格中,您可以使用jquery datepicker输入您的狗的生日。这部分有效。

目标

1)当用户选择生日时,我想自动计算输入日期和今天之间的差异。

2)使用日期之间的差异在另一个表格字段中显示狗的年龄组。
(小狗(<6个月),年轻(<2岁),成人(&lt; 6岁) )等等......)

我的代码

    <!-- Datepicker -->
    <script>
      $(function() {
        $( "#datepicker" ).datepicker({ 
          dateFormat: "dd. MM yy",
          altFormat: "yy-mm-dd",
          altField: "#dog_pet_birthdate",
          maxDate: "0",

         <!-- my attempt on calculating the difference
         between the entered date and the current date -->
          onSelect: function () {
                var birthDate = $("#dog_pet_birthdate").datepicker("birthdate");
                var now = new Date();
                var days = (now - birthDate) / (1000 * 60 * 60 * 24);
                $("#dog_pet_age").val(days);
            }
          });
      });
    </script>

    <!-- the register form (the relevant parts)-->
    <label>Birthday:</label>
    <!-- date to be displayed -->
    <input type="text" name="birthdate" id="datepicker" placeholder="your dog's brithdate" readonly="readonly" required>
    <!-- date to be written to the database using the altField -->
    <input type="hidden" name="dog_pet_birthdate" id="dog_pet_birthdate">

    <!-- the input field, in which I would like to output the age group depending on the date difference -->        
    <label>Age group</label>
    <input type="text" name="dog_pet_age" placeholder="your dog's age" readonly="readonly" required>



我真的被卡住了,我甚至无法计算现在和输入日期之间的差异,因此我甚至没有尝试我的问题的第二部分。如果有人可以帮我解决这两个问题,我会感激不尽!

2 个答案:

答案 0 :(得分:1)

您的var birthDate无法正常使用。 要获取日期,您需要使用getDatesee here

您应该执行以下操作:

var birthDate $("#datepicker").datepicker(' getDate ');

More info here.

然后,您可以使用此差异来显示您想要的内容:

if(parseInt(your_string)<60){
$("#dog_pet_age").val("your value");
}
else if(parseInt(your_string)<120){
$("#dog_pet_age").val("another..");
}
else
{
$("#dog_pet_age").val("the rest!");}

答案 1 :(得分:1)

尝试类似:

var now = Date.now();

var date = $("#datepicker").datepicker(' getDate ');

var days = (now - date)/1000/60/60/24;

$('#example').val() = days;