sql >> データベース >  >> RDS >> Mysql

データベース内の特定の時間からの経過時間

    これは、ごくわずかなJavascriptで実現できます。

    「作成済み」時間がdd MMM yyyy hh:mm:ssの形式でテーブルに動的にレンダリングされると仮定します。 、このようなものでうまくいくはずです:

    <html>
    <head>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
        ElapsedTimeLogger = function(dateElementId, elapsedElementId, interval) {
            var container = $(elapsedElementId);
            var time = parseDate($(dateElementId).text());
            var interval = interval;
            var timer;
    
            function parseDate(dateString) {
                var date = new Date(dateString);
                return date.getTime();
            }
    
            function update() {
                var systemTime = new Date().getTime();
                elapsedTime = systemTime - time;
                container.html(prettyPrintTime(Math.floor(elapsedTime / 1000)));
            }
    
            function prettyPrintTime(numSeconds) {
                var hours = Math.floor(numSeconds / 3600);
                var minutes = Math.floor((numSeconds - (hours * 3600)) / 60);
                var seconds = numSeconds - (hours * 3600) - (minutes * 60);
    
                if (hours < 10) hours = "0" + hours;
                if (minutes < 10) minutes = "0" + minutes;
                if (seconds < 10) seconds = "0" + seconds;
                var time = hours + ":" + minutes + ":" + seconds;
    
                return time;
            }
    
            this.start = function() {
                timer = setInterval(function() {update()}, interval * 1000);
            }
    
            this.stop = function() {
                clearTimeout(timer);
            }
        }
        $(document).ready(function () {
            var timeLogger = new ElapsedTimeLogger("#date", "#elapsed", 2);
            timeLogger.start();
    
            $("#stop_timer").click(function() {
                timeLogger.stop();
            });
            $("#start_timer").click(function() {
                timeLogger.start();
            });
        });
        </script>
    </head>
    <body>
        <table border="1">
            <tr><th>Created</th><th>Timer</th></tr>
            <tr><td id="date">21 Feb 2013 12:30:00</td><td id="elapsed"></td></tr>
        </table>
        <input id="stop_timer" type="button" value="Stop timer"></input>
        <input id="start_timer" type="button" value="Start timer"></input>
    </body>
    </html>

    上記のコードをファイルにコピーします。たとえば、index.html 、ブラウザで開きます。 Chromeでテストしました。

    2秒ごとに経過時間を更新する必要がありますが、更新間隔を自分に合ったものに変更できます。 5分ごとに更新するには:

    new ElapsedTimeLogger("#date", "#elapsed", 300);

    一般的な概念は、レンダリングされた「作成済み」の日付をエポックタイムスタンプ(ミリ秒単位)に解析し、現在のシステム時刻との差を計算することです。動的に更新される経過時間を取得するには、JavascriptのsetIntervalを使用します 働き。経過時間の更新を停止するには、JavascriptのclearTimeoutを使用します 機能。

    prettyPrintTimeを解除しました powtac の関数 。



    1. 動的なフィールド数を持つMySQLデザイン

    2. GoogleAnalyticsデータをmysqlテーブルにプッシュする方法

    3. SQLServerで先行ゼロを埋めて数値をフォーマットする

    4. MYSQLI_REPORT_STRICTを使用してmysqliに例外をスローさせる方法は?