2014-03-05 109 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; 

     }