2014-03-05 77 views
8

我有一個包含日期字符串格式(yyyy-mm-dd)的變量數量的頁面,這些變量源自使用moment.js。jQuery:傳遞字符串變量到日期對象

有沒有一種方法可以將這樣的變量傳遞給Javascript日期對象。將其轉換爲Javascript日期對象? 我對時間不感興趣,所以只要我可以將日期轉換爲日期對象,那就太好了。

我嘗試以下,但這不起作用,我無法找到使用moment.js辦法:對於任何幫助,蒂姆

var newVar = new Date(dateVar); 

非常感謝。

+2

可以改爲調用TODATE()momentjs的方法得到它作爲一個字符串的... –

+2

請參閱本的其他問題:http://stackoverflow.com/questions/8099681/is-there-a -php-date-equivalent-in-javascript-jquery – MjrKusanagi

+2

'var newVar = new Date(dateVar);'似乎在爲我工作。嘗試'控制檯中的新日期(「2014-03-05」)' – tewathia

回答

21

首先我要說以下應該爲你工作..

var dateVar = "2010-10-30"; 
var d=new Date(dateVar); 

,如果你說上面不工作檢查下面的一個 -

var dateVar = "2010-10-30"; 
var dsplit = dateVar.split("-"); 
var d=new Date(dsplit[0],dsplit[1]-1,dsplit[2]); 

爲證明檢查jsf iddle ..都工作正常.. JSFiddle

+1

非常感謝。第二個對我來說工作得很好。這會比在這種情況下使用正則表達式更快嗎? – user2571510

+2

正則表達式爲什麼?分割日期字符串?我會建議你使用相同的代碼..因爲我們只需要用**連字符( - )**來分割字符串,這是一個簡單的任務。所以我不會建議你創建一個更多的對象只是爲了分裂.. –

+1

你是對的。感謝您的解釋,這很好 - 只是想檢查。再次感謝 ! – user2571510

5

console.log()一直使用到顯示輸出,運行這個你就會明白的代碼

<script type='text/javascript'> 
    var StringDate = "2013-4-13" 
    var date = StringDate.split("-"); 
    console.log(date[0]); 
    console.log(date[1]); 
    console.log(date[2]); 

    NewDate = new Date(date[0],date[1]-1,date[2]);//Date object 
    console.log(NewDate); 
    </script> 
+1

謝謝 - 這看起來不錯!由於我必須用連續的幾個字符串來做到這一點,所以我希望爲他們每個人減少代碼。有沒有辦法與正則表達式一樣呢? – user2571510

1

爲了解決這個問題,我一個做功能誰管理,從文本到日期的變化:

我的例子有日期的作品,因爲這:君/ 1/2016至16年-06-01你可以重建函數來使你的格式工作...

在數字左側的cero's被添加以匹配日期類型格式。

function textoafecha(texto) 
     { 

      hasNumber = /\d/; 

      // Contiene el pedazo del texto que contiene el mes 
      mestexto = texto.substr(0,3); 
      // Contiene el pedazo de texto que contiene el primer numero del dia 
      diatextonumero1 = texto.substr(4,1); 
      diatextonumero2 = texto.substr(5,1); 

      // Si el texo contiene un numero... 
      if (hasNumber.test(diatextonumero2)) 
       { 
       dia = texto.substr(4,2); 
       anotexto = texto.substr(7,4); 
       } 
      else 
       { 
       dia = texto.substr(4,1); 
       dia = "0"+ dia; 
       anotexto = texto.substr(6,4); 
       } 


      switch (mestexto) 
      { 
       case "Jan" : mesnumero = "01"; 
          break; 

       case "Feb" : mesnumero = "02"; 
          break; 

       case "Mar" : mesnumero = "03"; 
          break; 

       case "Apr" : mesnumero = "04"; 
          break; 

       case "May" : mesnumero = "05"; 
          break; 

       case "Jun" : mesnumero = "06"; 
          break; 

       case "Jul" : mesnumero = "07"; 
          break; 

       case "Aug" : mesnumero = "08"; 
          break; 

       case "Sep" : mesnumero = "09"; 
          break; 

       case "Oct" : mesnumero = "10"; 
          break; 

       case "Nov" : mesnumero = "11"; 
          break; 

       case "Dic" : mesnumero = "12"; 
          break; 

       default : break; 

      } 

      fechaformateada = anotexto + "-" + mesnumero + "-" + dia;   
      return fechaformateada; 

     }