使用日期差异输出字符串

use date difference to output a string

我正在创建一个网站,您可以在该网站上注册一条狗。
在注册表中,您可以使用 jquery 日期选择器输入您爱犬的生日。这部分有效。

目标

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

2)使用日期之间的差异在另一个表单字段中显示狗的年龄组。
(小狗(<6个月),年轻(<2岁),成年(<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>



我真的被卡住了,我什至没有计算出现在和输入日期之间的差异,因此我什至没有尝试问题的第二部分。如果有人能帮助我解决这两个问题,我将不胜感激!

您的 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!");}

试试这样的东西:

var now = Date.now();

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

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

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