簡體   English   中英

Javascript獲得月份名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM