/ / datepicker.iso8601Woche Offset - Jquery, Wochennummer

datepicker.iso8601Wochenversatz - Jquery, Wochennummer

Ich verwende datepicker.iso8601Week (), um die Woche von einem ausgewählten Datum (in einem jQuery-UI-Datepicker) zu berechnen.

Laut iso8601Week geht eine Woche von Dienstag bis Montag, und ich brauche sie von Montag bis Sonntag. Wie kann das erreicht werden?

Antworten:

2 für die Antwort № 1

Hoffe, das kann dir helfen.

Tut mir leid, ich hatte nicht genug Zeit, um die detaillierten Komponententests durchzuführen.

function getDateRangeOfWeek(week){
var date = new Date();
var currentWeek = $.datepicker.iso8601Week(date);
date.setDate(date.getDate() - date.getDay() + 1 + (7 * (week -  currentWeek)));
var result = [];
for(var i = 0;i < 7;i++){
var d = new Date();
d.setDate(date.getDate() + i)
result[i] = d;
}
return result;
};

1 für die Antwort № 2

Beginnen am Montag

$("#date").DatePicker({
starts: 1
});

Beginnen am Sonntag

$("#date").DatePicker({
starts: 0
});

0 für die Antwort № 3

Entsprechend der JQuery UI Datepicker Die Dokumentationswochen beginnen am Montag für die iso8601Week Funktion, die das einzig Vernünftige ist, wenn sie dem folgen soll ISO 8601 Standard. Wenn Sie sich anders verhalten, würde ich das als Fehler betrachten. Sie können sich die Implementierung ansehen Hier.


0 für die Antwort № 4

Datepiker mit Drupal Calendar I arbeiten lassenhat herausgefunden, dass die Filterung pro Woche fehlerhaft ist, da die Funktion datepicker.iso8601Week ungültige Werte zurückgegeben hat. Nun, meine Woche begann trotz aller Fakten wie offizielle Dokumente am Mittwoch :) und das war das Problem. Ich beendete den folgenden Trick:

   var date = $.datepicker.iso8601Week(new Date(dateText));
var dateDay = $.datepicker.formatDate("D", new Date(dateText));
if (dateDay == "Mon" || dateDay == "Sun") {
date = date+1;
}

Dieser Code gibt die korrekte Wochennummer zurückfür Mo und So (sowie alle anderen Tage) nach Anklicken. Wenn Sie datepicker als Inline-Filter-Schnittstelle verwenden, möchten Sie möglicherweise auch das angeklickte Datum beibehalten und den Kalender ab der angeklickten Position anzeigen. Ich mache es durch URLs der genauen Länge mit Monatsnamen am Ende:

var setMon = window.location.pathname.slice(20);
var setDay = window.location.pathname.slice(17,19);
var setYear = window.location.pathname.slice(8,12);
$(".datep").datepicker({
defaultDate: $.datepicker.parseDate("dd MM y", setDay+" "+setMon+" "+setYear)
});

Ich hoffe, das kann anderen helfen, da ich verdammt viel Zeit darauf verwendet habe, herauszufinden, wie die Wochennummer festgelegt wird. Prost.