发表于: 2017-07-17 22:39:47

1 934


今天完成的事情:


跟着大部队去华科体育馆跑了3圈,体能下降的厉害,以前可是随便跑5公里的。


日期插件有点问题,刚开始完全不明白怎么回事儿

$http({
   method: 'get',
params: {
       page: $stateParams.page||1,
size: $stateParams.size||10,
startAt: $stateParams.startAt,
endAt: $stateParams.endAt,
type: $stateParams.type,
status: $stateParams.status
},

http请求需要什么就写什么,多余的不要。

$scope.startAt = $scope.date($stateParams.startAt);
$scope.endAt = $scope.date($stateParams.endAt);

ng-module绑定两个input框,$stateParams对象只包含那些在状态中定义的参数


一开始用的Date.parse() 方法

它是解析一个表示某个日期的字符串,并返回从1970-1-1 00:00:00 UTC 到该日期对象(该日期对象的UTC时间)的毫秒数,如果该字符串无法识别,或者一些情况下,包含了不合法的日期数值(如:2015-02-31),则返回值为NaN。

毫无意外返回的是NaN,$stateParams.endAt是毫秒数,不是字符串。


于是仔细看了一下Date对象:

Date对象是JavaScript提供的日期和时间的操作接口。它可以表示的时间范围是,1970年1月1日00:00:00前后的各1亿天(单位为毫秒)。


Date还可以当作构造函数使用。对它使用new命令,会返回一个Date对象的实例。如果不加参数,生成的就是代表当前时间的对象。


new  Date里可以随便写什么东西

Date对象接受从1970年1月1日00:00:00 UTC开始计算的毫秒数作为参数。这意味着如果将Unix时间戳(单位为秒)作为参数,必须将Unix时间戳乘以1000。


Date对象还接受一个日期字符串作为参数,返回所对应的时间。所有可以被Date.parse()方法解析的日期字符串,都可以当作Date对象的参数。


有个注意的地方:

new Date('2014-01-01')

// Wed Jan 01 2014 08:00:00 GMT+0800 (CST)

new Date('2014-1-1')

// Wed Jan 01 2014 00:00:00 GMT+0800 (CST)


第一个日期字符串是ISO格式,第二个不是,导致生成的时间不一样。


日期字符串有没有前导0,返回的结果是不一样的。如果没有前导0,JavaScript引擎假设用户处于本地时区,所以本例返回0点0分。如果有前导0(即如果你以ISO格式表示日期),就假设用户处于格林尼治国际标准时的时区,所以返回8点0分。但是,ES6改变了这种做法,规定凡是没有指定时区的日期字符串,一律认定用户处于本地时区。


在ES5之中,如果日期采用连词线(-)格式分隔,且具有前导0,JavaScript会认为这是一个ISO格式的日期字符串,导致返回的时间是以UTC时区计算的。


对于YYYY-MM-DD形式的字符串,JavaScript引擎可能会将其当作ISO格式来解析,采用格林尼治时区作为计时标准;而对于其他格式的日期字符串,一律视为非ISO格式,采用本地时区作为计时标准。


然后试了一下toString方法,他说返回一个完整的日期字符串。可是没有效果。


最后采用get类方法:

getTime():返回距离1970年1月1日00:00:00的毫秒数,等同于valueOf方法。

getDate():返回实例对象对应每个月的几号(从1开始)。

getDay():返回星期几,星期日为0,星期一为1,以此类推。

getYear():返回距离1900的年数。

getFullYear():返回四位的年份。

getMonth():返回月份(0表示1月,11表示12月)。


$scope.date= function (a) {
   var x = new Date(Number(a));
   var m = x.getMonth()+1>9?x.getMonth()+1:'0'+(x.getMonth()+1);
   var d = x.getDate();
   var y = x.getFullYear();
   return m +'/'+ d +'/'+ y;
};

写一个函数,分别定义4个变量,最后是三元运算符写法。


就返回正确的日期格式了。


明天计划的事情:

完成任务8


问题:

日期插件还是要换一个


收获:

如上



返回列表 返回列表
评论

    分享到