关于日期的一个bug - pod4g/tool GitHub Wiki
在调调SKU管理系统,今天发现了一个问题,今天日期是2016-05-31,当点击“明天”拉取明天的数据时,发现start为2016-05-32
var eventHandler = {
yesterday:function(){
this.day(-1);
},
today:function(){
this.day(0);
},
tomorrow:function(){
this.day(1);
},
// 这个方法有问题
// 在5月31号,获取到的day为31,然后又+1,变成了32。
// 可以预见,明天是6月1号,获取到的day为01,如果拉取昨天的数据(就是5月31号即今天的)
// 那么day - 1,就变成了0,也就是说,变成了06-00号,当然也会出错。
day:function(go){
showLoading();
var date = new Date();
// 在这儿加一行代码。保证加减运算的结果已经被date对象获知。取消掉下方的 +go 操作
date.setDate(today.getDate()+go);
var year = date.getFullYear();
var month = leftZero(date.getMonth() + 1);
// 取消掉这行代码。因为这儿做的是算术运算,其结果没有被date对象获知。
// var day = leftZero(today.getDate() + go);
var day = leftZero(today.getDate());
var timeStr = year + month + day;
var start = timeStr,end = timeStr;
var title = "";
if(go > 0){
title = "\"明天\"";
}else if(go < 0){
title = "\"昨天\"";
}else{
title = "\"今天\"";
}
getMetasByTimeRange(start,end,function(result){
var meta_infos = result.data.metas;
var articles = [];
var alllist = $scope.alllist;
var url = "http://120.27.45.36:3000/v1/getfullsku/";
meta_infos.forEach(function(item){
var article = {
cid:item.serverid,
thumb_image_url: item.thumb,
url:"http://c.diaox2.com"+item.oriUrl,
// 去掉title中的<br/>
title:[item.title.replace(/<br\s*\/>/ig,"")],
skuList:[]
}
articles.push(article);
var sidList = alllist[article.cid];
if(sidList){
sidList.forEach(function(sku){
$http({
url:url+sku,
method:"GET",
timeout:20000,
catch:true,
headers:headers
}).then(function(sku){
// console.log(sku.data.data);
article.skuList.push(sku.data.data[0]);
hideLoading(title+"的数据拉取成功");
}).catch(function(e){
console.log(e);
hideLoading('未能取到'+title+"的数据,请重试");
})
})
}
})
// console.log(articles);
$scope.cachedArticles = articles;
var revarticles = $rootScope.revarticles;
if(revarticles){
addThreeDStyle(revarticles);
}
})
}day:function(go){
showLoading();
var date = new Date();
var year = date.getFullYear();
var month = leftZero(date.getMonth() + 1);
var day = leftZero(date.getDate() + go);
var timeStr = year + month + day;
var start = timeStr,end = timeStr;
var title = "";
if(go > 0){
title = "\"明天\"";
}else if(go < 0){
title = "\"昨天\"";
}else{
title = "\"今天\"";
}
getMetasByTimeRange(start,end,function(result){
var meta_infos = result.data.metas;
var articles = [];
var alllist = $scope.alllist;
var url = "http://120.27.45.36:3000/v1/getfullsku/";
meta_infos.forEach(function(item){
var article = {
cid:item.serverid,
thumb_image_url: item.thumb,
url:"http://c.diaox2.com"+item.oriUrl,
// 去掉title中的<br/>
title:[item.title.replace(/<br\s*\/>/ig,"")],
skuList:[]
}
articles.push(article);
var sidList = alllist[article.cid];
if(sidList){
sidList.forEach(function(sku){
$http({
url:url+sku,
method:"GET",
timeout:20000,
catch:true,
headers:headers
}).then(function(sku){
// console.log(sku.data.data);
article.skuList.push(sku.data.data[0]);
hideLoading(title+"的数据拉取成功");
}).catch(function(e){
console.log(e);
hideLoading('未能取到'+title+"的数据,请重试");
})
})
}
})
// console.log(articles);
$scope.cachedArticles = articles;
var revarticles = $rootScope.revarticles;
if(revarticles){
addThreeDStyle(revarticles);
}
})
}
}