在表单上使用 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&" <input type='radio' name='andor' value='and'>AND"
ts=ts&" <input type='radio' name='andor' value='or' "&chkandor&">OR"
ts=ts&" <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& " And <input type='text' style='text-align:center;' size='19' name='date_to' id='date_to'>"
ts=ts&"</td>"
ts=ts&"<td> <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='"¤t_tech&"'>"
ts=ts&"<input type='hidden' name='current_status' value='"¤t_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 中使用 .change() 和 datepicker 提交表单