【问题标题】:Adding day names to getDate() function将日期名称添加到 getDate() 函数
【发布时间】:2017-04-06 07:32:25
【问题描述】:

所以我有这个项目,我正在做。我正在尝试在返回当前周日期(周一、周二、周三等)的代码上添加日期名称。

这是我的代码目前的样子:

            // Get the current date
            var curr = new Date(new Date().getTime() + 60 * 60 * 24 * 7);

            // First day
            var first = curr.getDate() - curr.getDay();

            // Last day
            var last = first + 6; 

            var startDate = new Date(curr.setDate(first));
            var endDate = new Date(curr.setDate(last));

我想补充一点,我将这部分代码用于一个项目,我们从学校自己的 API 打印学校时间表。我正在使用此代码通过 JSON 查询获取当前周的时间表:

var getData = {
                "startDate": startDate,
                "endDate": endDate,
                "studentGroup": [
                 ""
                ]
            };

如果需要,我可以提供有关该项目的更多信息。

非常感谢您的帮助。提前谢谢你。

编辑:

为了使 JSON 查询正常工作,startDate 和 endDate 需要采用这种形式(例如,如下);

YYYY-MM-DD'T'H:mm   eg. 2020-12-31T12:50

【问题讨论】:

  • 你对var curr = new Date(new Date().getTime() + 60 * 60 * 24 * 7);有什么期待??
  • ...你没有展示你试图解决你的实际问题
  • 我还没有尝试任何具体的东西。当涉及到var curr = new Date(new Date().getTime() + 60 * 60 * 24 * 7); 时,这段代码给出了当前的星期日期。从周一到周日,如果这就是你所要求的。

标签: javascript json api date project


【解决方案1】:

在查看了您的代码后,我设法想出了一个解决方案。

首先,您需要列出日期名称

var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];

那么你需要在JSON.parse()之后遍历你的responseText并为对象创建一个数组:

var json = JSON.parse(data.responseText);
var dataList = [];
for (var i = 0; i < json.reservations.length; i++) {
    if (json.reservations[i].resources != null) {
        for (var j = 0; j < json.reservations[i].resources.length; j++) {    
            var reservation = json.reservations[i];
            var resource = json.reservations[i].resources[j];

在此之后,您可以获取日期的名称并将它们添加到您的数组中:

// Name of the day
var day = new Date(reservation.startDate);                          
dataList.push(days[day.getDay()]);

【讨论】:

  • 是的。我给你发了那个先生。
【解决方案2】:

因为getDay() 为您提供Day 的整数值。您可以使用数组来获取天数,例如,

var Days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thurs', 'Fri', 'Sat']

因此,您可以轻松获得 Day by

var currDay = Days[new Date().getDay()]

【讨论】:

  • @Destiny_Coder_88 如果您对解决方案感到满意,请点赞并标记为答案
【解决方案3】:

你也可以这样用

var date = new Date();   // return timestamp object
date = date.toString();  // return timestamp  as string
date = date.substring(0,3); // return the day name
alert(date);

谢谢,

【讨论】:

  • Date.prototype.toString 返回的值取决于实现,可能根本不包含日期名称,更不用说在字符串中的特定位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-24
  • 1970-01-01
  • 2017-01-09
相关资源
最近更新 更多