javascript - examples - moment to timestamp
comienza la próxima semana comienza y termina usando jquery y moment js (4)
Busqué esta pregunta y encontré que no hay una respuesta en Stackoverflow ... Así que decidí responderla ...
Esta pregunta ayuda si necesita comenzar / finalizar la próxima / última semana con el lunes como comienzo de la semana.
Esto se especifica en el archivo lang , puede incluir el archivo lang/en-au.js
o lang/en-gb.js
y establecer el estándar de idioma deseado. Supongamos que estás en el Reino Unido:
moment.lang(''en-gb'');
Si no desea utilizar un idioma personalizado, puede cambiarlo para la configuración regional predeterminada de EE. UU .:
moment.lang(''en-custom'', {
week: {
dow: 1,
doy: 6 // Adjust the first week of the year, depends on the country. For the US it''s 6. For the UK, 4.
}
});
Entonces puedes hacer:
var date = ''2014-03-24'';
console.log(''next start'', moment(date).weekday(7).format(''DD/MM/YYYY''));
console.log(''next end'', moment(date).weekday(13).format(''DD/MM/YYYY''));
console.log(''prev start'', moment(date).weekday(-7).format(''DD/MM/YYYY''));
console.log(''prev end'', moment(date).weekday(-1).format(''DD/MM/YYYY''));
console.log(''current start'', moment(date).weekday(0).format(''DD/MM/YYYY''));
console.log(''current end'', moment(date).weekday(6).format(''DD/MM/YYYY''));
/*
next start 31/03/2014
next end 06/04/2014
prev start 17/03/2014
prev end 23/03/2014
current start 24/03/2014
current end 30/03/2014
*/
Usé el momento js para esto ... puedes obtenerlo desde here
/*
all functions return moment() object.. <br>
GetNextWeekStart().format(''DD/MM/YYYY'') to get 24/02/2014
*/
function GetNextWeekStart() {
var today = moment();
//edited part
var daystoMonday = 0 - (today.isoWeekday() - 1) + 7;
var nextMonday = today.subtract(''days'', daystoMonday);
return nextMonday;
}
function GetNextWeekEnd() {
var nextMonday = GetNextWeekStart();
var nextSunday = nextMonday.add(''days'', 6);
return nextSunday;
}
function GetLastWeekStart() {
var today = moment();
var daystoLastMonday = 0 - (1 - today.isoWeekday()) + 7;
var lastMonday = today.subtract(''days'', daystoLastMonday);
return lastMonday;
}
function GetLastWeekEnd() {
var lastMonday = GetLastWeekStart();
var lastSunday = lastMonday.add(''days'', 6);
return lastSunday;
}
Un poco tarde para la fiesta, pero esta es la manera más simple que he encontrado para expresar los comienzos / finales de semanas. El argumento de isoWeek
comienza semanas el lunes de acuerdo con ISO 8601 , mientras que la week
comienza semanas dependiendo de su configuración regional (por lo que probablemente sea el domingo o el lunes).
Esta semana:
moment().startOf(''isoWeek'')
moment().endOf(''isoWeek'')
La próxima semana:
moment().add(1, ''weeks'').startOf(''isoWeek'')
moment().add(1, ''weeks'').endOf(''isoWeek'')
La semana pasada:
moment().subtract(1, ''weeks'').startOf(''isoWeek'')
moment().subtract(1, ''weeks'').endOf(''isoWeek'')
Me gustan estas construcciones porque son increíblemente legibles. También es fácil retroceder o adelantar cualquier cantidad de semanas especificando cuántas semanas desea subtract
o add
.
//Last week (get current week array list from momentjs)
var sd = moment(currentWeekFd[0]).subtract(7, ''days'').format();
var ed = moment(currentWeekEd[6]).subtract(7, ''days'').format();
var lastWeekStratDay = moment(sd).format(''YYYY-MM-DD'');
var lastWeekEndDay = moment(ed).format(''YYYY-MM-DD'');
console.log(lastWeekStratDay +'', ''+ lastWeekEndDay)
//Next week
var sd = moment(currentWeekFd[0]).add(7, ''days'').format();
var ed = moment(currentWeekEd[6]).add(7, ''days'').format();
var nextWeekStratDay = moment(sd).format(''YYYY-MM-DD'');
var nextWeekEndDay = moment(ed).format(''YYYY-MM-DD'');
console.log(nextWeekStratDay +'', ''+ nextWeekEndDay)