2017-06-06 132 views
0

我从一个SharePoint库拉动修改日期,使用下面的将其转换:javascript日期返回的NaN NaN月NaN

function convertSPDate(d) { 
    // split apart the date and time 
    var xDate = d.split("")[0]; 
    var xTime = d.split(" ")[1]; 

    // split apart the hour, minute, & second 
    var xTimeParts = xTime.split(":"); 
    var xHour = xTimeParts[0]; 
    var xMin = xTimeParts[1]; 


    // split apart the year, month, & day 
    var xDateParts = xDate.split("-"); 
    var xMonth = xDateParts[1]-1;  
    var xDay = xDateParts[2]; 
    var xYear = xDateParts[0]; 

    var dDate = new Date(xYear, xMonth, xDay, xHour, xMin); 
    return dDate; 
} 

然后格式化它使用:

function getformattedDate(d){ 
var month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "October", "Nov" , "Dec"]; 
var getConvertedDate = d; 
return formattedDate = getConvertedDate.getDate() +" "+month[getConvertedDate.getMonth()] +" "+getConvertedDate.getFullYear();  
} 

我再试图在不同项目的页面上显示此日期使用:

var getDate = getformattedDate(convertSPDate(getFilteredItems[i].modified)); 

但是,这只是返回NaN undefined NaN - 任何帮助都将非常感谢!

+3

第一次拆分看起来不对......应该是空格? – trincot

+3

你有没有做过任何调试?我看到很多地方console.log可以缩小这个问题 –

+1

这个问题将通过包括示例输入和预期输出而得到很大改善。 –

回答

0

感谢@trincot - 是一个非常简单的解决方案,我完全忽略了一个!

第一分割是错误的,只是需要一个空间......

感谢所有

0

对于它的价值,如果你使用moment.js这是一个班轮:

var d = moment("2017-06-06 19:15").format("D MMM YYYY");

jsbin link