Perl CGI日期和时间选择器,自动填充当前日期和时间

时间:2016-09-14 20:49:10

标签: perl cgi

我使用perl创建了一个CGI表单,一切都运行得很好,除了我很难找到一个解决方案,如何在表单中填写当前时间和日期用户可以选择使用日期和时间选择器更改输入。这是我写的代码片段:

sub output_form {
    my ($q) = @_;
    print $q->start_form(
        -name => 'main',
        -method => 'POST',
    );
    print $q->start_table;
    print $q->Tr(
      $q->td('Update#:'),
      $q->td(
        $q->textfield(-name => "update_num", -size => 02)
      )
    );
     print $q->Tr(
      $q->td('Date:'),
      $q->td(
        $q->textfield(-name => "date", -size => 50)
      )
    );
     print $q->Tr(
      $q->td('Time:'),
      $q->td(
        $q->textfield(-name => "time", -size => 50)
      )
    );

2 个答案:

答案 0 :(得分:0)

http://jqueryui.com/datepicker/添加到您的html页面。

print "<link rel='stylesheet' href='//code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css'>";
print "<script src='//code.jquery.com/jquery-1.12.4.js'></script>";
print "<script src='//code.jquery.com/ui/1.12.0/jquery-ui.js'></script>";

...

然后将ID标记添加到文本字段。

print $q->Tr(
      $q->td('Date:'),
      $q->td(
        $q->textfield(-name => "date", -size => 50, -id => "datepicker")
      )
    );

你可能也会发现这个参考对perl monks在使用perl的javascript时很有帮助:http://www.perlmonks.org/?node_id=1050387

这里有关于数据拣选主题的另一个对话。 jQuery date/time picker

答案 1 :(得分:0)

如果您知道您的用户将使用Edge或Chrome等现代浏览器,那么您可以使用HTML5 date输入。

<input type="date" value="2016-09-15">

这为支持的浏览器提供了一个不错的日期选择器,并降级为不支持的简单文本输入。

您可以使用CGI的HTML创建功能创建它。

$q->input({type => 'date', value => '2016-09-15'});

但正如其他人所指出的,我们已经知道HTML创建功能至少15年是一个愚蠢的想法。现在没有人应该使用它们。请改用templating engine

至于获取日期。最简单的选择可能是使用Time::Piece

use Time::Piece;
my $date = localtime;
say $q->input({type => 'date', value => $date->strftime('%Y-%m-%d')});