生成JavaScript方法
我有下面的switch语句函数,它从设置的时间日期返回API中的条目:生成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); }); },
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是一种类型。谢谢,这解决了我的问题应该考虑一下格式!