在表单上使用 jquery 日期选择器将用户输入转换为整数日期

Posted

技术标签:

【中文标题】在表单上使用 jquery 日期选择器将用户输入转换为整数日期【英文标题】:Use jquery date picker on form to convert user input to integer date 【发布时间】:2018-01-14 15:18:42 【问题描述】:

用户使用 jquery 日期选择器输入日期,格式为 mm/dd/yyyy 该表单用于使用以整数格式记录日期的列 (CADNO) 查询 mysql 数据库,例如-3987 .

-3987 是从 2006 年 5 月 9 日开始计算的(这是日期 kepreported_date 列),这是因为 CADNO 列计算了从今天开始的多少天,reported_date 列是。

问题是,有没有办法在 jquery 上创建一个公式,将用户输入的日期转换为 MySQL 服务器期望的格式?

<script>

$( 函数()

var dateFormat = "mm/dd/yy",

  date_from = $( "#date_from" )
    .datepicker(dateFormat: 'dd/mm/yy',
      defaultDate: "+1w",
      changeMonth: true,
        changeYear: true,
      numberOfMonths: 3
    )
    .on( "change", function() 

      date_to.datepicker( "option", "minDate", getDate( this ) );

    ),

  date_to = $( "#date_to" ).datepicker(dateFormat: 'dd/mm/yy',
    defaultDate: "+1w",
    changeMonth: true,
    changeYear: true,
    numberOfMonths: 3
  )
  .on( "change", function() 

    date_from.datepicker( "option", "maxDate", getDate( this ) );
  );
function getDate( element ) 
  var date;
  try 
    date = $.datepicker.parseDate( dateFormat, element.value );
   catch( error ) 
    date = null;
  
  return date;

);

ts=ts&"<form method='post' action='search_prep.asp'>"
ts=ts&"<tr><td>Search</td>"
ts=ts&"<td><select size='1' name='search_field' id='search_field'>"
for p=0 to colrows
	ts=ts&"<option value='"&cols(0,p)&"'>"&cols(1,p)&"</option>"
next
ts=ts&"</select></td></tr>"
ts=ts&"<tr><td>For</td>"
ts=ts&"<td><input type='text' size='12'  name='search_text' id='search_text' >"
ts=ts&"&nbsp;&nbsp;<input type='radio' name='andor' value='and'>AND"
ts=ts&" <input type='radio' name='andor' value='or' "&chkandor&">OR"
ts=ts&"&nbsp;&nbsp;<input type='text' size='12' name='search_text2' id='search_text2'></td>"
ts=ts&"<td><input type='checkbox' name='search2' value='yes' "&chk2stage&"  >2 Stage query required</td>"
ts=ts&"<td>"
ts=ts&"<input type='radio' name='repclr' value='radno' "&chkreprep&">Reports"
ts=ts&" <input type='radio' name='repclr' value='cadno' "&chkrepclr&" >Clears "
'ts=ts&" range between <select size='1' name ='date_from' id='date_from'>" -commented for datepicker
ts=ts&"</tr> "
ts=ts&"</td>"
ts=ts& "<tr><td>Date Between</td> <td><input type='text' style='text-align:center;' size='19' name='date_from' id='date_from'>"
'for i = mindate to maxdate-commented for datepicker
	'ts=ts&"<option value="&i&">"&date() + i&"</option>"-commented for datepicker
'next-commented for datepicker
'ts=ts&"</select>"-commented for datepicker

'ts=ts&"and<select size='1' name ='date_to' id='date_to'>"
'for i = maxdate to mindate step -1
'	ts=ts&"<option value="&i&">"&date() + i&"</option>"
'next
'ts=ts&"</select>"
ts=ts& "&nbsp;&nbsp;And&nbsp;&nbsp;<input type='text' style='text-align:center;' size='19' name='date_to' id='date_to'>"
ts=ts&"</td>"
  
ts=ts&"<td>&nbsp;&nbsp;<input type='submit' value='Go'></td>"


ts=ts&"</tr> "
ts=ts&"<input type='hidden' name='nocom' value='"&nocom&"'>"
ts=ts&"<input type='hidden' name='current_tech' value='"&current_tech&"'>"
ts=ts&"<input type='hidden' name='current_status' value='"&current_status&"'>"
ts=ts&"<input type='hidden' name='status' value='"&status&"'>"



ts=ts&"</form></table></div>"

【问题讨论】:

请输入正确的密码 什么是 ts=ts& ?? 【参考方案1】:

使用以下 sn-p 在 javascript 中创建一个函数:

var firstDate = new Date(2006,05,09);
var secondDate = new Date(1990,01,01);

function (firstDate, secondDate)
    var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds

    var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)));
    return diffDays;

它将返回从给定的第一个日期到给定的第二个日期的天数。

【讨论】:

抱歉,如果我的问题不清楚,我想要类似的东西,但不是找到两天之间的差异,我想要一个公式,使用用户输入的日期减去今天的日期,两者都是独立的日期从和到的日期。 您可以将 firstDay 作为用户输入日期,将 secondDate 作为今天。您将获得所需的数据。 是否有可能代替 diffdays 让它创建公式的输出到元素 ID 是的,给那个函数起个名字,你可以这样做:$('#yourElementId').html(functionCall(args, args));

以上是关于在表单上使用 jquery 日期选择器将用户输入转换为整数日期的主要内容,如果未能解决你的问题,请参考以下文章

插入日期选择器后 Jquery 表单验证不起作用

在 jquery 中使用 .change() 和 datepicker 提交表单

在 JQuery UI 对话框中输入键行为

没有输入的jQuery日期选择器

jQuery UI 实例 - 日期选择器(Datepicker)

在提交失败时保持 jQuery - Rails