需求输入两个时间,只需要HH:MM 即小时和分钟
我是用<input type="text" name="starttime" /> <input type="text" name="stopname" />进行输入
例如输入 11:30 12:30 那么如何将这两个转换为时间格式做比较呢?百度了一堆都是天与天之间比较的
下面是我模仿着写的JS,转换时间那里肯定是有问题的,要如何改写呢?
function comparetime(){
var starttime = document.getElementById("starttime").value;
var stoptime = document.getElementById("stoptime").value;
var time1=(starttime).toTimeString(); //应该是这里处理的方法有问题
var time2=(stoptime).toTimeString();if(starttime > stoptime){
alert("输入的时间有误");
}
else {
alert("正确");
}
}
还有一个问题是,我的数据库里有一个字段searchtime 字段类型为datetime,
我通过PHP页面对这个表进行update的操作,我想谁设定在这个searchtime+12小时之后,就不能通过PHP
页面进行update操作了 我知道加个判断就可以了,通过$searchtime=$row['$searchtime'] 获取时间也没问题,就是不知道
$searchtime如何加这12个小时,也是时间格式转换的问题
我是用<input type="text" name="starttime" /> <input type="text" name="stopname" />进行输入
例如输入 11:30 12:30 那么如何将这两个转换为时间格式做比较呢?百度了一堆都是天与天之间比较的
下面是我模仿着写的JS,转换时间那里肯定是有问题的,要如何改写呢?
function comparetime(){
var starttime = document.getElementById("starttime").value;
var stoptime = document.getElementById("stoptime").value;
var time1=(starttime).toTimeString(); //应该是这里处理的方法有问题
var time2=(stoptime).toTimeString();if(starttime > stoptime){
alert("输入的时间有误");
}
else {
alert("正确");
}
}
还有一个问题是,我的数据库里有一个字段searchtime 字段类型为datetime,
我通过PHP页面对这个表进行update的操作,我想谁设定在这个searchtime+12小时之后,就不能通过PHP
页面进行update操作了 我知道加个判断就可以了,通过$searchtime=$row['$searchtime'] 获取时间也没问题,就是不知道
$searchtime如何加这12个小时,也是时间格式转换的问题
function comparetime(){
var starttime = document.getElementById("starttime").value;
var stoptime = document.getElementById("stoptime").value;
var t1=starttime.split(':');
var t2=stoptime.split(':');
var time1=new Date(75, 1, 16, t1[0], t1[1], 0);
var time2=new Date(75, 1, 16, t2[0], t2[1], 0);if(starttime > stoptime){
alert("输入的时间有误");
}
else {
alert("正确");
}}
第二个问题没看懂
第一个能详细说明下date()里面的参数都是什么吗?谢谢第二个问题其实就是我有一个可以用来修改的php页面,
现在是任意时间可以修改,我现在想加上一个时间的判断,如果在输入时间+12小时的范围内,正常执行修改的sql语句,超出时间范围则提示,不能进行修改
我获得时间的方法使<input type="hidden" name="searchtime" value="<?php echo date(Ymd H:i:s) ?>"
这样的形式,在数据库中的字段类型是datetime
就是说我这个searchtime+12小时 这个应该怎么写希望这回表述的清楚
var t1=starttime.split(':'); //将时,分数据分割
var t2=stoptime.split(':');
var time1=new Date(75, 1, 16, t1[0], t1[1], 0); //年,月,日,时,分,秒
var time2=new Date(75, 1, 16, t2[0], t2[1], 0);这样的理解对吧?另外比较是不是应该用time1和time2啊?这样onsubmit问题吧?好像不起作用啊。。 谢谢
<form name="form1" id="form1" action="" method="post" onSubmit="return comparetime();" >
<input type="text" name="starttime" id="starttime" />
<input type="text" name="stoptime" id="stoptime" />
<br><br>
<input type="submit" value="确定" />
</form>
是的,理解对了。我的写错了 2. 这个意思?
if(strtotime($_POST['searchtime'])+12*3600<=strtotime($searchtime)){
可以修改
}else{
不能修改
}
s2 = '12:30';d = new Date();
t = s1.split(/:/);
d.setHours(t[0], t[1]);
t1 = d.getTime();t = s2.split(/:/);
d.setHours(t[0], t[1]);
t2 = d.getTime();if(t1 > t2) alert('ok');
else alert('error');
2、$searchtime = '2012-09-05 10:14:25';
echo date('Y-m-d H:i:s', strtotime('12 Hours'. $searchtime));
//2012-09-05 22:14:25
还有两个问题,
第一执行alert()警告后,仍然做提交的操作,会将内容插入到数据库中去,JS部分如何处理。。
第二个问题,我想把这个扩展一下,上回问过一个给table手动添加行的JS,是这样的
JS部分
<script type="text/javascript">
var cGetRow=-99999;
function insertrow(){
var newrow = document.all.ACE_HIDDEN_TABLE.rows[0].cloneNode(true); //克隆一行
document.all("newTB").appendChild(newrow); //添加刚才克隆的一行
}
function GetRow(obj){
//获得行索引
//两个parentElement分别是TD和TR,rowIndex是TR的属性
//this.parentElement.parentElement.rowIndex
//cGetRow=window.event.srcElement.parentElement.parentElement.rowIndex;
cGetRow = obj.parentNode.parentNode.rowIndex;
DelRow(cGetRow);//点击checkbox时,直接删除行。
}
function DelRow(iIndex){
//删除一行
if(iIndex==-99999){
alert("系统提示:没有选中行号!");
}else{
document.getElementsByTagName('table')[10].deleteRow(iIndex);
iIndex==-99999;//将rowIndex恢复默认值。
}
}
</script>HTML部分 这里就不用管删除的部分了,没写checkbox那些
<table width="100%" border="1">
<thead>
<tr>
<td>出发时间</td>
<td>结束时间</td>
</tr>
</thead>
<tbody id="ACE_HIDDEN_TABLE" style="display:one">
<tr>
<td><input type="text" name="starttime[]" id="starttime" /></td>
<td><input type="text" name="stoptime[]" id="stoptime" /></td>
</tr>
</tbody>
<tbody id="newTB">
</tbody>
</table><div align="center" style="margin-top:50px;margin-right:300px;">
<input type="button" onClick="insertrow();" value="增加一行">
</div>这种情况下,我想要每行都进行时间的比较,全部正确,才能够进行提交操作,这块要如何写
还有两个问题,
第一执行alert()警告后,仍然做提交的操作,会将内容插入到数据库中去,JS部分如何处理。。
第二个问题,我想把这个扩展一下,上回问过一个给table手动添加行的JS,是这样的
JS部分
<script type="text/javascript">
var cGetRow=-99999;
function insertrow(){
var newrow = document.all.ACE_HIDDEN_TABLE.rows[0].cloneNode(true); //克隆一行
document.all("newTB").appendChild(newrow); //添加刚才克隆的一行
}
function GetRow(obj){
//获得行索引
//两个parentElement分别是TD和TR,rowIndex是TR的属性
//this.parentElement.parentElement.rowIndex
//cGetRow=window.event.srcElement.parentElement.parentElement.rowIndex;
cGetRow = obj.parentNode.parentNode.rowIndex;
DelRow(cGetRow);//点击checkbox时,直接删除行。
}
function DelRow(iIndex){
//删除一行
if(iIndex==-99999){
alert("系统提示:没有选中行号!");
}else{
document.getElementsByTagName('table')[10].deleteRow(iIndex);
iIndex==-99999;//将rowIndex恢复默认值。
}
}
</script>HTML部分 这里就不用管删除的部分了,没写checkbox那些
<table width="100%" border="1">
<thead>
<tr>
<td>出发时间</td>
<td>结束时间</td>
</tr>
</thead>
<tbody id="ACE_HIDDEN_TABLE" style="display:one">
<tr>
<td><input type="text" name="starttime[]" id="starttime" /></td>
<td><input type="text" name="stoptime[]" id="stoptime" /></td>
</tr>
</tbody>
<tbody id="newTB">
</tbody>
</table><div align="center" style="margin-top:50px;margin-right:300px;">
<input type="button" onClick="insertrow();" value="增加一行">
</div>这种情况下,我想要每行都进行时间的比较,全部正确,才能够进行提交操作,这块要如何写
if(starttime > stoptime){
alert("输入的时间有误");
return false; //阻止提交
}然后循环每行imput 框 ,将每行 starttime 和 stoptime 的值传入函数进行验证
<script language="javaScript">
function duibi(a,b){
var c1=a.split(':');
var starttime = new Date(75,1,16,c1[0][],c1[1][],0);
var startimes = starttime.getTime();
var c2=b.split(':');
var stoptime = new Date(75,1,16,c2[0][],c2[1][],0);
var stoptimes = stoptime.getTimes();
}if(starttimes >= stoptimes){
alert("输入时间有误");
return false;
}
else {
return false;
}
</script>
尝试着改写的函数 不知道对不对循环每行input框 传值? 能实例化吗? 看的不太明白。。
alert("输入时间有误");return false;
}
else {
return true;
}
function setSubmit(){
...............这里验证ACE_HIDDEN_TABLE 下的两个input 框.................
var inputs=document.getElementById('newTB').getElementsByTagName('input'); for(var i=0;i<inputs.length;i+=2){
if(!duibi(inputs[i].value,inputs[i+1].value)){
alert('输入有误');
return false;
}
}
return true;
}然后在你的form中 <form .... onsubmt="return setSubmit()">