Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将时间间隔存储到数据库中的方法_Javascript_Php_Html_Mysql - Fatal编程技术网

Javascript 将时间间隔存储到数据库中的方法

Javascript 将时间间隔存储到数据库中的方法,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我正在构建一个需要存储时间间隔的web应用程序 示例: 1小时 1小时30分钟 2小时 2小时30分钟 我将在以下三种方式中使用间隔: 时间间隔由用户选择并存储在数据库中 时间间隔在界面中显示为纯文本(“1小时”) 时间间隔在函数中使用为毫秒 我想知道使用数据库存储此时间间隔的一些方法,并在上述功能中使用 目前,我将时间间隔存储在数据库中作为int(以毫秒为单位)。用户将从下拉菜单中选择。因此,如果他们选择“1小时”,该选择的值将是1小时(毫秒),即3600000,那么我可以在函数中使用它。

我正在构建一个需要存储时间间隔的web应用程序

示例:

  • 1小时
  • 1小时30分钟
  • 2小时
  • 2小时30分钟
我将在以下三种方式中使用间隔:

  • 时间间隔由用户选择并存储在数据库中
  • 时间间隔在界面中显示为纯文本(“1小时”)
  • 时间间隔在函数中使用为毫秒
  • 我想知道使用数据库存储此时间间隔的一些方法,并在上述功能中使用

    目前,我将时间间隔存储在数据库中作为int(以毫秒为单位)。用户将从下拉菜单中选择。因此,如果他们选择“1小时”,该选择的值将是1小时(毫秒),即3600000,那么我可以在函数中使用它。当在界面中显示“1小时”时,会出现一个小问题

    我假设的另一种方法是将间隔作为字符串存储在数据库中,然后使用函数剥离值。示例:[1]小时[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中以毫秒为单位使用扩展时,您是否需要毫秒精度?我会把它存储为分钟。是的,你没有正确解释这个问题。我想要的答案在上面。是的,你没有正确地解释这个问题。上面是我一直在寻找的答案。