我有一个包含许多变量的页面,这些变量包含日期字符串格式(yyyy-mm-dd),这些日期源自使用moment.js。
有没有办法可以将这样的变量传递给Javascript日期对象。将它转换为Javascript日期对象? 我对时间不感兴趣,只要我能把日期转换成一个很棒的日期对象。
我尝试了以下但是这不起作用,我找不到使用moment.js的方法:
var newVar = new Date(dateVar);
非常感谢你提供任何帮助,蒂姆。
答案 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;
}