Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成JavaScript方法_Javascript_Node.js_Api - Fatal编程技术网

生成JavaScript方法

生成JavaScript方法,javascript,node.js,api,Javascript,Node.js,Api,我有下面的switch语句函数,它从设置的时间日期返回API中的条目: entries: { recent: function(callback) { return self.request(rest.get, '/timeentries', { startDate: '2016-02-15' }, function(result) { callback(result); }); },

我有下面的switch语句函数,它从设置的时间日期返回API中的条目:

entries: {
        recent: function(callback) {
            return self.request(rest.get, '/timeentries', { startDate: '2016-02-15' }, function(result) {
                callback(result);
            });
        },
这很好,我从2016-02-15之后的任何事情中都能得到结果

但是,我不希望这是静态的。我希望能够从运行时提取日期范围

我有以下返回当前周的代码:

var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); 
var firstDay = new Date(curr.setDate(first)).toUTCString();
firstDay返回一周的开始,这是我想用来代替startDate:“2016-02-15”

问题,我如何把第一天放在这里,以下是行不通的:

entries: {
        recent: function(callback) {
          var curr = new Date; // get current date
          var first = curr.getDate() - curr.getDay(); 
          var firstDay = new Date(curr.setDate(first)).toUTCString();
            return self.request(rest.get, '/timeentries', { firstDate }, function(result) {
                callback(result);
            });
        },

如果仔细观察第一次调用并将其与第二次调用进行比较,则表示对象的形状不正确。它们必须是
key:value
对,以
startDate
作为键,日期作为值,因此:

return self.request(rest.get, '/timeentries', { startDate: firstDate }, function(result) {
    callback(result);
});

在新的ES6规范中,
{firstDate}
是一个有效的对象,它将把
firstDate
作为键,但是您需要将
startDate
作为键

此外,除了一个
firstDay
变量之外,您没有任何变量
firstDay
,因此对象将是
{startDate:firstDay}
,以便它工作

另外,
toutString
返回一个完整的日期字符串,如下所示:
Sun,2017年2月12日02:01:35 GMT
,您只需要
YYY-MM-DD
格式,因此查看时需要执行以下操作:

var d = new Date(),
    month = '' + (d.getMonth() + 1),
    day = '' + d.getDate(),
    year = d.getFullYear();

if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;

var firstDay = [year, month, day].join('-');
var d=new Date(),
月份=“”+(d.getMonth()+1),
日期=“”+d.getDate(),
year=d.getFullYear();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
var firstDay=[年、月、日].join('-');

switch语句在哪里?
{firstDate}
不是正确的object@epascarello它在ES6中是有效的,作为一个速记对象初始化这看起来像一个简单的打字错误,firstDay vs firstDate。查看您的历史记录,您在所有问题中只接受了一个答案。你应该跟上进度,开始接受好的答案,以表达你对人们为帮助你所付出的努力的感激之情。只有当他没有使用ES6Nope时,这才是真的。关键是密钥名是
startDate
,而不是
firstDate
。要编辑以澄清它…@Paul Thank^^@JorgeFuentesGonzález谢谢!是的,我正在使用ES6,在这里发布时,firstDate/FirstDay是一种类型。谢谢,这解决了我的问题应该考虑一下格式!