用数字替换月份名称

时间:2014-02-06 10:07:46

标签: javascript jquery

到目前为止,我已使用以下方式将日期格式从“2014年2月24日”更改为“2月24日至2014年2月”:

    var dateStart = date;
    var arr = dateStart.split(' ');
    console.log(arr[1]+"-"+arr[0]+"-"+arr[2]);

如何从arr [1]中提取月份并替换其等效数值?

(我做了什么:我创建了一个数组和每个函数来循环遍历这个数组并返回月份名称值(即2月2日,5月5日)。)

答案:在我的案例中我特意寻找的是创建分割“arr [1]”作为dateArray的索引器:

dateArray[arr[1]]

6 个答案:

答案 0 :(得分:4)

使用散列 - 就像你不必迭代数组一样。

 var dateHash = {
    Jan : 1,
    Feb: 2,
    Mar: 3,
    Apr: 4,
    May: 5,
    Jun: 6,
    Jul: 7,
    Aug: 8,
    Sep: 9,
    Oct: 10,
    Nov: 11,
    Dec: 12
   };

var newDate = dateHash[arr[1]]+"-"+arr[0]+"-"+arr[2];

答案 1 :(得分:0)

使用:

var i;
  for (i = 0; i < arr.length; ++i) {
    alert(new Date(Date.parse(arr[i] +" 1, 2012")).getMonth()+1);
}

<强> demo

答案 2 :(得分:0)

为了好玩,我这样做了:

function getMonthFromString(mon){
   return new Date(Date.parse(mon +" 1, 2012")).getMonth()+1
}

奖励:它还支持完整的月份名称:-D或者只是返回-1的新改进版本 - 如果需要,可以更改它以引发异常(而不是返回-1):

function getMonthFromString(mon){

   var d = Date.parse(mon + "1, 2012");
   if(!isNaN(d)){
      return new Date(d).getMonth() + 1;
   }
   return -1;
 }

来源:HERE

答案 3 :(得分:0)

您可以保留键/值对的对象,其中键是月份名称,值是月份编号:

var months = {
    January: 1,
    February: 2,
    ...
};

然后:

var monthNumber = months['April'];

或:

参考Converting month name to month number using JavaScript

答案 4 :(得分:0)

要将月份转换为数字:

public interface UserRepository extends JpaRepository<UserEntity, Integer>{
    
    Optional<UserEntity> getUserByUserName(String user);
}

要将数字转换为月份:

var dateString = "24 Feb 2014";
var date = new Date(dateString)
var result = date.getMonth() + 1 + "-" + date.getDate() + "-" + date.getFullYear()
console.log(result)

答案 5 :(得分:-2)

var month=new Array(12);
        month[0]="Jan";
        month[1]="Feb";
        month[2]="Mar";
        month[3]="Apr";
        month[4]="May";
        month[5]="Jun";
        month[6]="Jul";
        month[7]="Aug";
        month[8]="Sep";
        month[9]="Oct";
        month[10]="Nov";
        month[11]="Dec";

month[mm] === value!!