Javascript Date 对象不正确的日期

Javascript Date Object incorrect date

本文关键字:日期 不正确 对象 Date Javascript      更新时间:2023-09-26

你好,我只需要另一双眼睛来看待这个。我创建了这段代码来设置一个带有当前日期的日历,它工作正常,但今天,1 月 30 日星期六,日历仍然显示它从 1 月 23 日星期六开始。

这是我的代码笔的链接:http://codepen.io/cavascript/pen/MKXrbj

这是代码:

  var date = new Date();
  var saturday = date.getDate() - date.getDay() - 1;
  var sunday = date.getDate() - date.getDay() ;
  var monday = date.getDate() - date.getDay() + 1 ;
  var tuesday = date.getDate() - date.getDay() + 2 ;
  var wednesday= date.getDate() - date.getDay() + 3 ;
  var thursday = date.getDate() - date.getDay() + 4 ;
  var friday = date.getDate() - date.getDay() + 5 ;
  var saturday = (new Date(date.setDate(saturday))).toDateString();
  var sunday = (new Date(date.setDate(sunday))).toDateString();
  var monday = (new Date(date.setDate(monday))).toDateString();
  var tuesday = (new Date(date.setDate(tuesday))).toDateString();
  var wednesday = (new Date(date.setDate(wednesday))).toDateString();
  var thursday = (new Date(date.setDate(thursday))).toDateString();
  var friday = (new Date(date.setDate(friday))).toDateString();
  //add to html row
  $('#dateRow').html('<td colspan="4">Date</td><td colspan="4">'+saturday+'</td><td colspan="4">'+sunday+'</td><td colspan ="4">'+monday+'</td><td colspan="4">'+tuesday+'</td><td colspan="4">'+wednesday+'</td><td colspan="4">'+thursday+'</td><td colspan="4">'+friday+'</td><td>Hours</td><td>Delete</td>');

这是 HTML:

  <div class="container-fluid">
<div class="table-responsive">
  <table class="table table-bordered">
    <tbody>
      <tr id="dateRow">
      </tr>
      <tr>
        <td colspan="4">Name</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td colspan="2">Br/lnch</td>
        <td colspan="2">Dinner</td>
        <td>&nbsp</td>
        <td>&nbsp</td>
      </tr>
    </tbody>
  </table>
</div>

感谢您的任何意见

你的代码

date.getDate() - date.getDay() - 1; 

将返回 23,因为我们目前在 30/01/2016 - 所以它完全按照您的要求执行:)

查看 Date.js 或 Moment.js它们有很多帮助程序方法可以使 Datetime 算术变得更加容易。

我猜你不希望显示的一周并不总是从 23 日星期六到 29 日星期五。

可能的解决方案:调用getDate()检查结果是否是星期六,将其用作var saturday,从那里您可以推断出周一至周五。但是,如果 getDate() 不是星期六,请找到上一个星期六并使用它。

此外,日历的有用资源

一试 - 如果你做不到,那么给我发一条消息,我很乐意帮忙。