【问题标题】:jQuery - creating date from input valuejQuery - 从输入值创建日期
【发布时间】:2014-04-07 08:08:42
【问题描述】:

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

我正在编写自己的脚本,该脚本从输入中导入日期,如下所示:

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

$a 是日期,取自带有模板(?) 的 db: 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();

有什么想法吗? :)

【问题讨论】:

  • a 是一个字符串,因此您需要提取单个值以将它们作为参数提供给 new Date(a[0], a[1] etc) 或将整个内容变成一个字符串IE。 value = "日期(2014, 03, 09)"

标签: javascript jquery date input


【解决方案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

【讨论】:

    【解决方案2】:

    您只向函数传递了一个参数(1 个字符串)!不是 6!

    使用这个:

    $(函数() { $('input#test').removeClass('hidden');

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2017-02-03
      • 2013-05-07
      • 2019-02-05
      相关资源
      最近更新 更多