【发布时间】:2014-03-08 12:12:58
【问题描述】:
我想用更多功能扩展 JavaScript 的基本 Date 对象,如下所示:
Date.prototype.getWeek = function() {
var date = new Date(this.getTime());
date.setHours(0, 0, 0, 0);
// Thursday in current week decides the year.
date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
// January 4 is always in week 1.
var week1 = new Date(date.getFullYear(), 0, 4);
// Adjust to Thursday in week 1 and count number of weeks from date to week1.
return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
};
目前,我将此逻辑放入名为objectExtenders.js 的文件中,该文件在index.html 中链接,如下所示:
<script src="scripts/misc/dateExtenders.js"></script>
将这个逻辑放到一个服务中似乎并不合适,因为它修改了全局 Date 对象。因此,我想将这样的服务注入特定的控制器是没有意义的,因为它无论如何都会适用于所有控制器。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: javascript angularjs date