moment.js ajouter/soustraire jours sans affecter la date originale
comment additionner ou soustraire des jours à une date par défaut en utilisant moment.js?
je vais essayer d'aller le début et date de fin de la semaine, comme ci-dessous:
const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.startOf('isoWeek').weekday(0);
const endOfWeek = current.endOf('isoWeek').weekday(6);
Lors de l'appel de endOfWeek
, j'obtiens la valeur attendue.
Cependant, mon problème est que startOfWeek
est remplacé par le endOfWeek
valeur.
je voulais obtenir la valeur de startOfWeek
et endOfWeek
3 réponses
il suffit de cloner le moment avant de le modifier. Utiliser current.clone().whatever...
ou moment(current).whatever...
. Ils font tous les deux la même chose.
C'est nécessaire parce que les moments sont mutable.
vous devez cloner la valeur de current et ensuite effectuer les opérations:
const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.clone().startOf('isoWeek').weekday(0);
const endOfWeek = current.endOf('isoWeek').weekday(6);
résolu le problème en obtenant le format du startOfWeek
et la sauvegarde dans une variable. Puis à partir de la nouvelle variable, je la convertis en une instance de moment et à partir de là, j'obtiens le endOfWeek
valeur.
const current = moment.tz('2016-03-04', 'America/Los_Angeles');
const startOfWeek = current.startOf('isoWeek').weekday(0);
const startOfWeekConvert = startOfWeek.format('YYYY-MM-DD');
const endOfWeek = startOfWeekConvert.endOf('isoWeek').weekday(6);
je suis maintenant en mesure d'obtenir les dates de début et de fin de la semaine en même temps.