Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Waktu yang berlalu dari waktu tertentu dalam database

Ini dapat dicapai dengan sedikit Javascript.

Dengan asumsi bahwa waktu "Dibuat" dirender secara dinamis dalam tabel dengan format dd MMM yyyy hh:mm:ss , sesuatu seperti ini seharusnya berhasil:

<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>

Salin kode di atas ke dalam file, katakan index.html , dan buka di browser. Saya mengujinya di Chrome.

Itu harus memperbarui waktu yang telah berlalu setiap 2 detik, tetapi Anda dapat mengubah interval pembaruan menjadi sesuatu yang cocok untuk Anda, mis. untuk memperbaruinya setiap 5 menit:

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

Konsep umumnya adalah mengurai tanggal "Dibuat" yang dirender menjadi stempel waktu Epoch (dalam milidetik) dan kemudian menghitung perbedaannya dengan waktu sistem saat ini. Untuk mendapatkan waktu yang telah berlalu memperbarui secara dinamis Anda menggunakan setInterval Javascript's fungsi. Untuk berhenti memperbarui waktu yang telah berlalu, gunakan clearTimeout Java Javascript fungsi.

Saya mengangkat prettyPrintTime fungsi dari powtac .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel-5 'LIKE' setara (Fasih)

  2. kesalahan mengubah tabel, menambahkan batasan kunci asing mendapatkan kesalahan Tidak dapat menambah atau memperbarui baris anak

  3. mysql memesan bidang varchar sebagai bilangan bulat

  4. Parsing data XML menggunakan php untuk dimasukkan ke database mysql

  5. Metode otentikasi 'caching_sha2_password' tidak didukung oleh plugin yang tersedia