jQuery - 从输入值创建日期

时间:2014-03-05 10:20:02

标签: javascript jquery date input

我真的需要你的帮助来完成这个

我正在处理自己的脚本,它从输入中导入日期,如下所示:

<input type='text' class='hidden' value='$a' id='test'>

$ a是日期,取自带模板的数据库(?): 2014,03,09,04,07,02

及其:年,月,日,小时,分钟,秒

所以看起来像这样

<input type='text' class='hidden' value='2014, 03, 09, 04, 07, 02' id='test'>

我的javascript文件是这样的:

$(function() {
    $('input#test').removeClass('hidden');
    var a = $('input#test').val();
    console.log(a);
    var b = +new Date(a);
    console.log(b);

第一个控制台日志返回输入的内容(2014,03,09,04,07,02),但第二个返回NaN。我不明白为什么:c

当我像这样手动编写时:

  

var b = + new Date(2014,03,09,04,07,02);

它全部工作..我不知道如何解决它,我也尝试过使用它:

  1. span和.html();
  2. span和.text();
  3. 有什么想法吗? :)

2 个答案:

答案 0 :(得分:1)

您只将一个参数(1个字符串)传递给该函数!不是6!

使用它:

  

$(function(){       $(&#39;输入#试验&#39)。removeClass(&#39;隐藏&#39);

var a = $('input#test').val();

console.log(a);

var params = a.split(", ")

var b = +new Date(params[0], params[1], params[2], params[3], params[4], params[5]);

console.log(b);

答案 1 :(得分:1)

你的a被视为字符串,因此它作为Date的第一个参数。您需要在日期中阐明其他参数。为什么在new Date()中使用+?

你需要注意一个月从0开始,所以03表示4月而不是3月。

似乎不需要它。

试试这个:

 $('input#test').removeClass('hidden');
    var a = $('input#test').val();
    console.log(a);
    arr = a.split(",")
    var b = new Date(arr[0],arr[1],arr[2],arr[3],arr[4],arr[5]);
    console.log(b);

working demo