2013-06-11 4 views
1

Я пытался выяснить, как получить дату последнего x дня месяца в JavaScript без использования цикла. Я уверен, что это связано с использованием оператора модуля, но я не могу получить формулу правильно :-(Получить последнюю дату для x дня данного месяца в Javascript

Так, например, дата последнего понедельника в этом месяце (06/2013) будет 24-м.

Может кто-нибудь пролить некоторый свет на это? это сводит меня с ума!

спасибо заранее.

Редактировать

Я думаю, что он работает в настоящее время, благодаря тому, заглянуть внутрь, как date.js сделай это, я был близок с тем, что у меня было!

function getLastDay(year, month, dayOfWeek) 
{ 
    var d = new Date(year, month, 0); 
    var diff = (dayOfWeek - d.getDay() + 7 * -1) % 7; 

    return new Date(year, month-1, d.getDate() + diff); 
} 

// Last Monday in for January 2013 
getLastDay(2013, 1, 1); // Mon Jan 28 2013 00:00:00 GMT+0000 (GMT Standard Time) 
+0

У вас есть код, над которым вы работали? Я посмотрел на это и сумел достичь этой функциональности с помощью цикла while, но не могу придумать способ достижения того, что вы после –

+0

Код, который у меня есть, довольно прост до сих пор. Он просто находит последнюю дату этого месяца, затем пытается разделить разницу с днем ​​недели, а затем вычесть ее с даты. –

ответ

0

Извините, сначала неправильно сформулируйте свой вопрос. Редактирование моего ответа.

Если вы готовы использовать библиотеку, попробуйте date.js.

Вы можете использовать moveToNthOccurence с -1, чтобы получить последнее вхождение в день в течение месяца.

Итак:

Date.today().moveToNthOccurrence(1, -1) 

должно дать вам последний понедельник месяца.

Смежные вопросы