Javascript 将时间间隔存储到数据库中的方法
我正在构建一个需要存储时间间隔的web应用程序 示例:Javascript 将时间间隔存储到数据库中的方法,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我正在构建一个需要存储时间间隔的web应用程序 示例: 1小时 1小时30分钟 2小时 2小时30分钟 我将在以下三种方式中使用间隔: 时间间隔由用户选择并存储在数据库中 时间间隔在界面中显示为纯文本(“1小时”) 时间间隔在函数中使用为毫秒 我想知道使用数据库存储此时间间隔的一些方法,并在上述功能中使用 目前,我将时间间隔存储在数据库中作为int(以毫秒为单位)。用户将从下拉菜单中选择。因此,如果他们选择“1小时”,该选择的值将是1小时(毫秒),即3600000,那么我可以在函数中使用它。
- 1小时
- 1小时30分钟
- 2小时
- 2小时30分钟
顺便说一下,我正在使用PHP和JavaScript。PHP是严格的服务器端和JavaScript客户端 这是应该完全由PHP来处理的事情,包括将时间插入数据库和格式化输出 我建议选择的
值直接对应于各自的秒数(60秒到一分钟,3600秒到一小时):
然后,您将从数据库中检索它(在本例中使用$time
),并使用对其进行格式化:
$hours = floor($time / 3600);
$minutes = ($time / 60) % 60;
$seconds = $time % 60;
$format = '%d hour(s), %d minute(s) and %d second(s)';
echo sprintf($format, $hours, $minutes, $seconds);
// 1 hour(s), 30 minute(s) and 0 second(s)
随意调整以适应所需的输出
请注意,可能还需要设置默认时区(基于您的确切应用程序),这可以通过以下方式完成:
date_default_timezone_set('[ZONE]');
这将确保所有用户都能同时看到,而不管他们在世界的哪个角落
希望这有帮助!:) 这是应该完全由PHP来处理的事情,包括将时间插入数据库和格式化输出
我建议选择的值直接对应于各自的秒数(60秒到一分钟,3600秒到一小时):
然后,您将从数据库中检索它(在本例中使用$time
),并使用对其进行格式化:
$hours = floor($time / 3600);
$minutes = ($time / 60) % 60;
$seconds = $time % 60;
$format = '%d hour(s), %d minute(s) and %d second(s)';
echo sprintf($format, $hours, $minutes, $seconds);
// 1 hour(s), 30 minute(s) and 0 second(s)
随意调整以适应所需的输出
请注意,可能还需要设置默认时区(基于您的确切应用程序),这可以通过以下方式完成:
date_default_timezone_set('[ZONE]');
这将确保所有用户都能同时看到,而不管他们在世界的哪个角落
希望这有帮助!:) 如果我正确理解了您的问题,您应该能够通过使用select下拉元素并为每个option元素设置“value”属性来使用html标记来实现这一点。示例:1小时
(其中3600000是请求中发送的值,“1小时”是显示给用户的值)
下面是一个完整的测试用例:
<form method="POST" target="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<select name="interval">
<option value="3600000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 3600000 ? 'selected':''; ?>>1 hour</value>
<option value="5400000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 5400000 ? 'selected':''; ?>>1 hour and 30 minutes</value>
<option value="7200000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 7200000 ? 'selected':''; ?>>2 hours</value>
<option value="9000000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 9000000 ? 'selected':''; ?>>2 hours and 30 minutes</value>
</select>
<input type="submit" name="form_submit" value="submit"/>
</form>
<?php
/* TEST CASE: */
if(isset($_POST['form_submit'])){
if(isset($_POST['interval'])){
echo $_POST['interval'].' milliseconds.';
}else{
echo 'Interval not set';
}
/* TODO: code to insert into DB */
}
?>
如果我正确理解了您的问题,您应该能够通过使用select下拉元素并为每个选项元素设置“value”属性来使用html标记实现这一点。示例:1小时
(其中3600000是请求中发送的值,“1小时”是显示给用户的值)
下面是一个完整的测试用例:
<form method="POST" target="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
<select name="interval">
<option value="3600000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 3600000 ? 'selected':''; ?>>1 hour</value>
<option value="5400000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 5400000 ? 'selected':''; ?>>1 hour and 30 minutes</value>
<option value="7200000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 7200000 ? 'selected':''; ?>>2 hours</value>
<option value="9000000"<?php echo isset($_POST['interval']) && (int)$_POST['interval'] === 9000000 ? 'selected':''; ?>>2 hours and 30 minutes</value>
</select>
<input type="submit" name="form_submit" value="submit"/>
</form>
<?php
/* TEST CASE: */
if(isset($_POST['form_submit'])){
if(isset($_POST['interval'])){
echo $_POST['interval'].' milliseconds.';
}else{
echo 'Interval not set';
}
/* TODO: code to insert into DB */
}
?>
如何使用PHP的;或者,当您可能需要在javascript中以毫秒为单位使用扩展时,您是否需要毫秒精度?我会将它存储为分钟。那么使用PHP的;或者,当您可能需要在javascript中以毫秒为单位使用扩展时,您是否需要毫秒精度?我会把它存储为分钟。是的,你没有正确解释这个问题。我想要的答案在上面。是的,你没有正确地解释这个问题。上面是我一直在寻找的答案。