我有一个带有修复日期和时间条目的表单。 (例如:23:30 - 04/14/2011)
我第二次进入。 (例如:00:15-次日)
如何计算第二次进入时间的日期。 只有这三个变量。
2011年4月14日的时间A = 23:30 时间B = 00:15 _ ___ ?
有人能告诉我这个计算的语义如何找到时间日期B!
由于
答案 0 :(得分:0)
我可以看到几种方法。我可能会做这样的事情:
在HTML中(缺少表单控件,标签等):
<input name="date_from" type="text"> <!-- use some sort of javascript date popup control to format this properly-->
<input type="text" name="hours_to"> <!-- remember to add validation to input -->
<input type="text" name="mins_to"> <!-- remember to add validation to input -->
<select name="day_to">
<option value="0">The same day</option>
<option value="1">The next day</option>
<option value="2">The day after that</option>
</select>
然后在PHP表单处理程序中,假设date_from是有效的日期格式:
$time_from = strtotime($_POST['date_from']);
$time_to = str_to_time('Y-m-d 00:00:00', $time_from) //start of the day
+ 86400 * (int) $_POST['day_to'] //86400 seconds in a day
+ 3600 * (int) $_POST['hour_to'] //3600 seconds in an hour
+ 60 * (int) $_POST['min_to']; //60 seconds in a minute
$sql_from = date("Y-m-d H:i:s", $time_from);
$sql_to = date("Y-m-d H:i:s", $time_to);
然后你可以进行数据库插入,当然还需要验证等。
此外,strtotime()可以接受相对时间参数(例如'+ 1天'),这可能是另一种方式,请查看PHP手册以获取更多信息
答案 1 :(得分:0)
var date1 = '23:30 - 04/14/2011';
var date2 = '00:15 - the Next Day';
var d1month = date1.split(' - ')[1].split('/')[0];
var d1day = date1.split(' - ')[1].split('/')[1];
var d1year = date1.split(' - ')[1].split('/')[2];
var d1hour = date1.split(' - ')[0].split(':')[0];
var d1min = date1.split(' - ')[0].split(':')[1];
var d2hour = date2.split(' - ')[0].split(':')[0];
var d2min = date2.split(' - ')[0].split(':')[1];
var d = new Date(d1year, parseInt(d1month)-1, d1day, d1hour, d1min, 0, 0);
var d2 = new Date(d1year, parseInt(d1month)-1, parseInt(d1day)+1, d2hour, d2min, 0, 0);