jQuery:将字符串变量传递给date对象

时间:2014-03-05 03:58:10

标签: javascript jquery datetime momentjs date-arithmetic

我有一个包含许多变量的页面,这些变量包含日期字符串格式(yyyy-mm-dd),这些日期源自使用moment.js。

有没有办法可以将这样的变量传递给Javascript日期对象。将它转换为Javascript日期对象? 我对时间不感兴趣,只要我能把日期转换成一个很棒的日期对象。

我尝试了以下但是这不起作用,我找不到使用moment.js的方法:

var newVar = new Date(dateVar);

非常感谢你提供任何帮助,蒂姆。

3 个答案:

答案 0 :(得分:25)

首先,我会说以下应该对你有用..

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]);

用于证明检查jsfiddle ..两者都正常工作.. JSFiddle

答案 1 :(得分: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>

答案 2 :(得分:1)

为了解决这个问题,我制作了一个管理从文本到日期的更改的函数:

我的示例适用于日期:2016年6月1日至2016年6月1日您可以重建功能以使您的格式有效...

添加数字左侧的cero以匹配日期类型格式。

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 "Dec" : mesnumero = "12";
                           break;   

              default : break;

            }

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

        }