В PHP можно сказать:
$unixTimeOfLastSunday = strtotime("last Sunday");
Что бы приравнивалось к такому: 1465714800
Как выполнить одно и то же в Javascript или AngularJS?
EDIT - теперь я использую moment.js
как угловую библиотеку. Здесь мой контроллер:
myApp.controller('myController', ['$scope', 'moment', function ($scope, moment) {
moment.updateLocale('en', {
meridiem: {
am: 'am',
AM: 'AM',
pm: 'pm',
PM: 'PM'
}
});
var sunday = moment().calendar("Last Sunday at 12:00 AM");
var sundayUnix = moment(sunday).unix();
console.log(sundayUnix);
});
Но по какой-то причине консоль всегда выплевывает сегодня, а не в воскресенье.
Я предлагаю использовать moment.js. Вы можете комбинировать http://momentjs.com/docs/#/displaying/calendar-time/ и http://momentjs.com/docs/#/displaying/unix-timestamp-milliseconds/.
Edit: По-видимому, momentjs действительно потрясающий, и все возможно - и легко, если вы исследуете богатый API. Ответ - это просто moment().day("Sunday").unix()
.
Прекрасно, если вы спросите меня! :) Соответствующая документация.
Использование moment.js
: https://momentjs.com/
Чтобы получить воскресенье за неделю до этого, это работает:
var sunday = moment().day(-7);
Чтобы получить воскресенье текущей недели:
var sunday = moment().day(0);
Чтобы получить этот день Unix в полночь:
var sundayMidnight = moment().day(0).startOf('day').unix();