使用日期差来输出字符串

use date difference to output a string

本文关键字:输出 字符串 日期      更新时间:2023-09-26

我正在创建一个网站,您可以在上面注册一只狗
在登记表中,您可以使用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工作不正常。要获取日期,您需要使用getDate,请参阅此处。

你应该做一些类似的事情:

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

点击此处了解更多信息。

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

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;