[英]Javascript get month range by month name
我有一個jQuery onclick函數,基本上收到一個月的名字,從那個月的名字,我想得到一個月的范圍。 比如我正在傳遞一個月名“May”,如下所示:
$('#swiperNext').click(function(e)
{
var currentMonth = $('.swiper-slide-active h3').html();
console.log(currentMonth);
});
現在我想將當前月份名稱傳遞給JS函數並獲取該月份的日期范圍。
所以例如May將=> 01-05-2016 - 31-05-2016,依此類推......有人可以幫我解決這個問題嗎?
您可以在沒有任何第三方庫的情況下完成此操作。
我認為你是當年的計算
var date = new Date();
var y = date.getFullYear();
var month = $('.swiper-slide-active h3').text();
var m = new Date(Date.parse(month, 1, " + y)).getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);
編輯:我已經改變了使用月份名稱作為字符串的答案
我會用Moment.js 。 它非常適合操縱日期和做各種事情。
在您的具體情況:
var startOfMonth = moment().month("June").startOf("month").toDate()
var endOfMonth = moment().month("June").endOf("month").toDate()
你可以使用這個功能:
function getMonthFromString(monthName){
var date = new Date(Date.parse(monthName + 1, new Date().getFullYear()));
var firstDay = new Date(date.getFullYear(), date.getMonth(), 1).getDate();
var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
var month = new Date(Date.parse(monthName + 1, new Date().getFullYear())).getMonth()+1;
var year = new Date().getFullYear();
return firstDay + "-" + month + "-" + year + " - " + lastDay + "-" + month + "-" + year;
}
首先我根據getMonth()索引創建月份名稱數組。然后通過indexOf找到所需的月份名稱,這將在找到它時返回您的數組索引。
注意getMonth()是0到11之間的返回數,假設從1月到12月
所以在getMonth中添加了1
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"
];
$('#swiperNext').click(function(e)
{
var currentMonth = $('.swiper-slide-active h3').html();
var month = monthNames.indexOf(currentMonth);
var d = new Date();
var start = new Date(d.getFullYear(),month,1);
var end = new Date(d.getFullYear(),month+1,0);
var startdate = start.getDate()+"/"+(start.getMonth()+1)+"/"+start.getFullYear();
var enddate = end.getDate()+"/"+(end.getMonth()+1)+"/"+end.getFullYear();
console.log(startdate+"-"+enddate);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.