2012-04-28 194 views
1

我對JSON相當新穎01​​JavaScript所以我很抱歉,如果看起來我沒有做足夠的研究。參考以下鏈接:JSON數據字符串替換和日期格式化

http://jsbin.com/imekip/edit#javascript,live

我想知道如何修改從代碼:

我們的下一次演出是在菲爾莫爾,加利福尼亞州舊金山,美國2012年-04-18

要:

我們的下一次演出是在費爾lmore,舊金山5月4日

非常感謝你提前。

+0

你應該添加一些代碼,否則它會顯示你只需要一個字符串從A更改爲B. – 2012-04-28 00:20:57

+0

喜費利克斯·克林,抱歉如果鏈接不好,我認爲這可能會更容易。我試圖替換的那部分鏈接是'

  • 我們的下一個演出是在{venue.displayName}, {location.city} on {start.date}
  • 「,item));' – redditor 2012-04-28 00:26:55

    回答

    1

    它需要的代碼一點點在你存儲日期變量和使用日期對象 2每個月的名稱分配給該月的數量每個循環做 1)),還要檢查轉換使用一些字符串函數的一天到一個字符串 3)最少但不是最後一個位置必須剪切,直到第一個逗號出現,我已經使用了分割函數,因爲您可能在其他情況下使用字符串的其餘部分 完整的工作演示這裏 http://jsfiddle.net/theodore/WrCLW/2/

    +0

    Hi Theodore。謝謝你的演示,這真的很有幫助。你可以使用外部數據源做另一個jsfiddle嗎?例如http://www.lofiz.co.uk/afba/songkickwidget/testjsondata.json謝謝!你 – redditor 2012-04-28 06:52:56

    +0

    你的JSON結果有錯誤,1號線 解析錯誤:? ({「resultsPage ^ 期待‘{’,‘[’ 如果你把它有效的JSON它與使用它很簡單$ getJSON function http://api.jquery.com/jQuery.getJSON/ – TheodoreV 2012-04-28 14:29:45

    +0

    我糾正了JSON,現在應該沒問題。我一直在搞getJSON,但我似乎無法工作對不起,我很痛苦,但如果你能再次看看我的演示,我會很感激,謝謝。 – redditor 2012-04-28 20:22:41

    1

    HTML

    <ul id="ulId"> 
        <li>Our next gig is at 
         <a href='#'> 
          The Fillmore, San Francisco, CA, US on 2012-05-18 
         </a> 
        </li> 
        <li>Our next gig is at 
         <a href='#'> 
          The Fillmore, San Francisco, CA, US on 2012-10-15 
         </a> 
        </li> 
    </ul> 
    

    JS

    var months=['January','February','March','April','May', 'June', 'July', 'August','September','October','November','December']; 
    var rgx = /(\d{4})-(\d{2})-(\d{2})/; 
    function changeDate(ul) 
    { 
        for(i=0;i<ul.childNodes.length;i++) 
        { 
         if(ul.childNodes[i].tagName=="LI") 
         { 
          var link=ul.childNodes[i].getElementsByTagName('a')[0]; 
          var txt=link.innerHTML; 
          var r = txt.match(rgx); 
          var dateArr=r[0].split('-'); 
          var m= parseInt(dateArr[1])-1; 
          var d=dateArr[2]; 
          var dt= d+'th '+months[m]; 
          var final=txt.replace(r[0] ,dt); 
          link.innerHTML=final; 
         } 
        } 
    } 
    changeDate('ulId'); // call the function and pass the ul id as paremeter. 
    

    DEMO.