2016-03-30 50 views
0

我試圖將日期列表轉換爲文本。在這裏我要舉一些例子:將日期列表更改爲文本

1)日期(名單DD/MM/YY):

31/03/2016 
    06/04/2016 
    13/04/2016 
    20/04/2016 
    27/04/2016 

我想改變這個名單到像文本:周從每個星期三2016年3月31日至2016年4月27日

2)日期一覽表(DD/MM/YY):

01/01/2017 
01/02/2017 
01/01/2018 
01/02/2018 
01/01/2019 
01/02/2019 
01/01/2020 
01/02/2020 

我想改變這個名單成文本,如:1 從01/01/2017到01/01/2020的每年的第1個和第2個月的一天

請分享任何腳本或插件在jquery中完成此任務。

謝謝

+1

什麼類型的列表,這是?這是一個csv文件或純文本? 或者只是單個字符串值? – John

+2

日期會變得非常棘手。我建議使用像[Moment.js](http://momentjs.com/)這樣的庫,它可以很好地處理它們。 –

+0

@John你可以假設這些日期是在數組中。 –

回答

0

所以這是一個很好的功能,可以爲您提供所需的輸出。 只需給函數2參數:arraytext。 它會返回消息,您可以根據需要存儲或打印。

var arr1 = ["31/03/2016", "06/04/2016", "13/04/2016", "20/04/2016", "27/04/2016"]; 
 
var arr2 = ["01/01/2017", "01/02/2017", "01/01/2018", "01/02/2018", "01/01/2019", "01/02/2019", "01/01/2020", "01/02/2020"]; 
 
var infoText1 = "Every Wednesday of Week from "; 
 
var infoText2 = "1st day of 1st and 2nd month of each year from "; 
 

 
function showMessage(array, text) { 
 
    var newArr = []; 
 
    array.forEach(function(e, i) { 
 
    tmpArr = array[i].split("/"); 
 
    tmpArr.unshift(tmpArr[1]); 
 
    tmpArr.splice(2, 1); 
 
    newArr.push(tmpArr.join("/")); 
 
    }) 
 
    return text + newArr.shift() + " to " + newArr.pop(); 
 
} 
 

 
var message = showMessage(arr1, infoText1) // <-- this is your output 
 

 
document.write(message); // just to test the output

+0

嗨@John,感謝您的回答,但我也想讓周名或Days of months動態。就像星期三的情況一樣,它可能是另一天(如星期二,星期一)。或天:(1,2),它可以是另一個日子,如(5,6,7,8)。是否有意義? –

+0

但是,您可以根據需要更改文本和數組。 你只是給任何文本或數組的功能,它會吐出你想要的模式 。 您可以根據需要更改infoText1等。 – John

相關問題