Определение года недели

Посмотрите на год после setWeek

d = Date.today() 
Wed Dec 26 2012 00:00:00 GMT+0000 (GMT Standard Time) 
d.getWeek() 
52 
d.setWeek(52) 
Mon Dec 23 2013 00:00:00 GMT+0000 (GMT Standard Time)

Кто-нибудь знает, о чем это? Я неправильно понял, как должна работать функция setWeek?

2 ответа

Решение

Я нашел проблему в datejs трекер с этой же проблемой. Это с 2011 года, хотя оно все еще помечено как новое: проблема setWeek

Что касается вашего вопроса: "Я неправильно истолковал, как должна работать функция setWeek?" Я бы сказал, что это ошибка в jdate код.

Если вы посмотрите на исходный код datejs, вы увидите, что setWeek всегда будет двигаться в понедельник целевой недели n:

Date.prototype.setWeek = function (n) {
  return this.moveToDayOfWeek(1).addWeeks(n - this.getWeek());
};

см.: datejs: svn / trunk / src / core.js

Другие вопросы по тегам