如何使用jQuery从输入字段的时间戳中提取日期和时间?

How can I extract the date and time from a timestap inside of an input field with jQuery?

本文关键字:提取 取日期 时间 时间戳 jQuery 何使用 输入 字段      更新时间:2023-09-26

我遇到了jQuery和UI日期选择器的问题。

基本上我有3个字段在我的新事件形式:日期timeFromtimeTo在我的SQL数据库中有3个字段:Date(datetime), timeFrom(time), timeTo(time)

日期字段,是用日期选择器选择的,提交看起来像这样:3/19/13timeFrom和timeTo将被时间选择器插件选中,看起来像这样:06:20 am AND 07:20 am

在我的SQL数据库中,提交的数据看起来像这样:2013-03-1906:20:00.007:20:00.0

现在这一切都很好,直到我去编辑同一个事件。当我从数据库调用它并再次填充输入时,它们最终看起来像这样:

日期:{ts '2013-03-19 00:00:00'}

timeFrom: 1970-01-01 06:20:00.0

timeTo: 1970-01-01 07:20:00.0

因此,这意味着日期选择器和时间选择器都不能识别这些值。如果你只是再次提交表单,而不是重置日期,我的代码抛出一个错误。

所以我认为我需要使用jquery来修改页面加载时的输入字段,使其格式正确,并显示如下:

  $(function() {
        //datefix
        var thisdatevalue = $("input[name='event[eventdate]']").val();
        var day1 = $("input[name='event[eventdate]']").val().getDate();                 
        var month1 = $("input[name='event[eventdate]']").val().getMonth();             
        var year1 = $("input[name='event[eventdate]']").val().getFullYear();
        var fullDate = day1 + "/" + month1 + "/" + year1;
        $("input[name='event[eventdate]']").val(fullDate);
        //timefix
        var thistimefromvalue = $("input[name='event[timefrom]']").val();
        var hour1 = $("input[name='event[timefrom]']").val().getHours();                 
        var minute1 = $("input[name='event[timefrom]']").val().getMinutes();             
        var second1 = $("input[name='event[timefrom]']").val().getSeconds();
        var fullTime = hour1 + ":" + minute1 + ":" + second1;
        $("input[name='event[timefrom]']").val(fullTime) ;
        //timefix
        var thistimetovalue = $("input[name='event[timeto]']").val();
        var hour2 = $("input[name='event[timeto]']").val().getHours();                 
        var minute2 = $("input[name='event[timeto]']").val().getMinutes();             
        var second2 = $("input[name='event[timeto]']").val().getSeconds();
        var fullTime = hour2 + ":" + minute2 + ":" + second2;
        $("input[name='event[timeto]']").val(fullTime) ;
    });

但是,上面的代码抛出TypeError: $(…).val(…)。getDay不是一个函数,也不是一个函数。

我认为这是一个标准的javascript函数,应该为我做的伎俩。

有什么好主意吗?

谢谢!

getDay()函数,因为所有其他同类函数只适用于Date对象。使用以下语法创建Date对象,然后调用所需的方法。

dt = new Date('2013-03-27 15:22:33');
result = dt.getFullYear()+'/'+(dt.getUTCMonth()+1)+'/'+dt.getDate()+' '+dt.getUTCHours()+':'+dt.getUTCMinutes()+':'+dt.getUTCSeconds();
下面是jsFiddle
的工作示例