parse Int不适用于日期函数

parse Int not working for date function

本文关键字:日期 函数 适用于 不适用 Int parse      更新时间:2024-02-06

我正在select中开发一个带有硬编码日期值的简单html控件,根据这个值,我将其拆分为两部分,根据返回的值,我希望将日期和月份显示为警报消息,但它在警报中显示为NaNNaN的消息,而不是返回我的格式化消息。

<p>Click the button to display todays day of the month.</p>
<select id="account_type" name="account_type">
  <option value="1">Thursday May 29 at 2:00 PM ET</option>
  <option value="2">Tuesday May 22 at 10:00 AM ET</option>
  <option value="2">Friday May 22 at 10:00 AM ET</option>
  <option value="2">Monday May 22 at 10:00 AM ET</option>
  <option value="2">Wednesday May 22 at 10:00 AM ET</option>
  <option value="2">Saturday May 22 at 10:00 AM ET</option>
</select>
<input type="image" id="submit" alt="Submit">
$(document).ready(function() {
  $("#submit").click(function() {
    var str = $('#account_type option:selected').text();
    var spl = str.split("at");
    // alert("str : " + spl[0]);
    var d = new Date(spl[0]);
    var d1 = d.getDay();
    var d11 = parseInt(d1);
    var d2 = d.getMonth();
    var d12 = parseInt(d2);
    var d3 = d.getDate();
    var d13 = parseInt(d3);
    var fulldate = d11 + "" + d12;
    alert("Detail is : " + fulldate);
  });
});

您也在星期六的urday中使用"at"这个关键字来分割文本使用其他字符或单词进行拆分。我只是修改你的代码试试看!

<html>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function() {
        $("#submit").click(function() {
          var str = $('#account_type option:selected').text();
          var spl = str.split(",");
          // alert("str : "+spl[0]);
          var d = new Date(spl[0]);
          var d1 = d.getDay();
          var d11 = parseInt(d1);
          var d2 = d.getMonth();
          var d12 = parseInt(d2);
          var d3 = d.getDate();
          var d13 = parseInt(d3);
          var fulldate = d11 + " " + d12;
          alert("Detail is : " + fulldate);
        });
      });
    </script>
  </head>
  <body>
    <p>Click the button to display todays day of the month.</p>
    <select id="account_type" name="account_type">
      <option value="1">Thursday May 29 , 2:00 PM ET</option>
      <option value="2">Tuesday May 22 , 10:00 AM ET</option>
      <option value="2">Friday May 22 , 10:00 AM ET</option>
      <option value="2">Monday May 22 , 10:00 AM ET</option>
      <option value="2">Wednesday May 22 , 10:00 AM ET</option>
      <option value="2">Saturday May 22 , 10:00 AM ET</option>
    </select>
    <input type="image" id="submit"  alt="Submit">
  </body>
</html>

看起来您的浏览器正在将日期字符串解析为InvaliDate

一种解决方案可能是像一样手动解析迄今为止的字符串

$(document).ready(function() {
  var months = {
      Jan: 0,
      Feb: 1,
      Mar: 2,
      Apr: 3,
      May: 4
    },
    days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
  $("#submit").click(function() {
    var str = $('#account_type option:selected').text();
    var spl = str.split(" ");
    //alert("str : "+spl[0]);
    var d = new Date();
    d.setMonth(months[spl[1]]);
    d.setDate(+spl[2]);
    var d0 = spl[0];
    var d1 = days[d.getDay()];
    var d2 = d.getMonth();
    var d3 = d.getDate();
    var fulldate = d0 + '-' + d1 + "-" + d2 + '-' + d3;
    alert("Detail is  : " + fulldate);
  });
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Click the button to display todays day of the month.</p>
<select id="account_type" name="account_type">
  <option value="1">Thursday May 29 at 2:00 PM ET</option>
  <option value="2">Tuesday May 22 at 10:00 AM ET</option>
  <option value="2">Friday May 22 at 10:00 AM ET</option>
  <option value="2">Monday May 22 at 10:00 AM ET</option>
  <option value="2">Wednesday May 22 at 10:00 AM ET</option>
  <option value="2">Saturday May 21 at 10:00 AM ET</option>
</select>
<input type="image" id="submit" alt="Submit">

您不能以任何方式实例化date对象,尽管您的代码可以在chrome中工作,因为它只是更灵活,但不能在firefox中。有一些特定的格式,您应该使用它们。

点击此处阅读更多信息。

你需要在约会中提到一年,然后只有它才会起作用。

尝试以下代码:

<option value="1">Thursday May 29 2016 at 2:00 PM ET</option>
<option value="2">Tuesday May 22 2016 at 10:00 AM ET</option>
<option value="2">Friday May 22 2016 at 10:00 AM ET</option>
<option value="2">Monday May 22 2016 at 10:00 AM ET</option>
<option value="2">Wednesday May 22 2016 at 10:00 AM ET</option>
<option value="2">Saturday May 22 2016 at 10:00 AM ET</option>

我刚刚在每个option中添加了2016

工作Fiddle