2016-01-14 97 views

回答

1

如果你只是想重新格式化字符串,則不要使用日期打擾:

function reformatDateString(ds) { 
 
    var months = {jan:'01',feb:'02',mar:'03',apr:'04',may:'05',jun:'06', 
 
       jul:'07',aug:'08',sep:'09',oct:'10',nov:'11',dec:'12'}; 
 
    var b = ds.split('-'); 
 
    return b[2] + '-' + months[b[1].toLowerCase()] + '-' + b[0] + ' 00:00:00'; 
 
} 
 

 
document.write(reformatDateString('12-Jan-2016'));

但是,如果你真的需要來分析字符串到一個日期,然後單獨做到這一點,格式化字符串:

function parseDMMMY(s) { 
 
    var months = {jan:0,feb:1,mar:2,apr:3,may:4,jun:5, 
 
       jul:6,aug:7,sep:8,oct:9,nov:10,dec:11}; 
 
    var b = s.split(/-/); 
 
    return new Date(b[2], months[b[1].toLowerCase()], b[0]); 
 
} 
 

 
document.write(parseDMMMY('16-Jan-2016')); 
 

 
function formatDate(d) { 
 
    function z(n){return ('0'+n).slice(-2)} 
 
    return z(d.getDate()) + '-' + z(d.getMonth()+1) + '-' + d.getFullYear() + 
 
     ' ' + z(d.getHours()) + ':' + z(d.getMinutes()) + ':' + z(d.getSeconds()); 
 
} 
 

 
document.write('<br>' + formatDate(parseDMMMY('16-Jan-2016')));

0

我認爲這個功能可能會給你你正在尋找的東西。

def parseStringDate(String date,Boolean flagTime=false){ 
    def date 
    def Format='yyyy-MM-dd' 
    def datePart=_date.toString().substring(0,10) 
    if (flagTime){ 
     date = datePart+" "+_date.toString().substring(11,19) 
     Format=Format+" "+'HH:mm:ss' 
    }else date = datePart 
    return [date, Format] 
} 
+0

你確定這是JavaScript? – RobG

1

可以使用moment parsing功能和format方法:

var dateString = "12-Jan-2016"; 
var convertedFormat = moment(dateString, "DD-MMM-YYYY").format("YYYY-MM-DD HH:mm:ss"); 
console.log(convertedFormat); 
// this will display: 2016-01-12 00:00:00 

請確保Jan是在你的區域設置有效的月份。

+0

感謝和+1爲您的答覆相同,我會嘗試 – Abhishek

相關問題