5 <& /elements/tr-input_date-field,
7 'name' => 'field_name',
8 'value' => $current_value,
12 'format' => '%m/%d/%Y', #overrides date_format config
13 'usedatetime' => 1, #use DateTime->strftime to format the date
14 # instead of Date::Format->time2str
15 'noinit' => 1, #first one on the page is enough
21 % unless ( $noinit ) {
22 <LINK REL="stylesheet" TYPE="text/css" HREF="<%$fsurl%>elements/calendar-win2k-2.css" TITLE="win2k-2">
23 <SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar_stripped.js"></SCRIPT>
24 <SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-en.js"></SCRIPT>
25 <SCRIPT TYPE="text/javascript" SRC="<%$fsurl%>elements/calendar-setup.js"></SCRIPT>
28 <% include('/elements/tr-td-label.html',
30 'required' => $required ) %>
31 <TD COLSPAN=<% $colspan %>>
32 <INPUT TYPE="text" NAME="<% $name %>" ID="<% $name %>_text" VALUE="<% $value %>">
33 <IMG SRC="<%$fsurl%>images/calendar.png" ID="<% $name %>_button" STYLE="cursor: pointer" TITLE="<% mt('Select date') |h %>">
37 <SCRIPT TYPE="text/javascript">
39 inputField: "<% $name %>_text",
40 ifFormat: "<% $format %>",
41 button: "<% $name %>_button",
43 % if ( $format =~ /\%r/ ) {
53 my($name, $value, $label, $format, $usedatetime, $noinit, $colspan, $required);
56 $name = $opt->{'name'};
57 $value = $opt->{'value'};
58 $label = $opt->{'label'};
59 $format = $opt->{'format'};
60 $usedatetime = $opt->{'usedatetime'};
61 $noinit = $opt->{'noinit'};
62 $colspan = $opt->{'colspan'} || 1;
63 $required = $opt->{'required'};
65 ($name, $value, $label, $format, $usedatetime) = @_;
69 my $conf = new FS::Conf;
71 $format ||= $conf->config('date_format') || '%m/%d/%Y';
73 $label = $name unless $label;
75 if ( $value =~ /\S/ ) {
77 my $dt = DateTime->from_epoch(epoch => $value, time_zone => 'floating');
78 $value = $dt->strftime($format);
79 } elsif ( $value =~ /^\d+$/ ) {
80 $value = time2str($format, $value);