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

时间:2013-03-27 21:45:23

标签: javascript jquery datepicker jquery-ui-timepicker

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

基本上我的新活动表格中有3个字段:日期 timeFrom timeTo 我的SQL数据库中有3个字段:Date(datetime),timeFrom(time),timeTo(time)

日期字段,使用日期选择器选择,并提交如下所示:3/19/13 timeFrom和timeTo将使用timepicker插件选择,看起来像这样: 上午06:20和上午07:20

在我的SQL数据库中,提交的数据如下所示: 2013-03-19 06:20:00.0 07: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

因此,这意味着datepicker和timepicker都不会重现这些值。如果您只是再次提交表单,则无需重置日期,我的代码会抛出错误。

所以我认为我需要使用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函数,应该可以解决这个问题。

关于如何实现这一目标的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

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上的working sample