【问题标题】:Javascript auto count on 30 days and delete data from tableJavascript 自动计数 30 天并从表中删除数据
【发布时间】:2019-08-23 08:22:26
【问题描述】:

mysql table structure screenshot

我想让表格数据从当前日期算起 30 天后删除。

以上是mysql数据库结构截图(我用当前时间戳记日期)

这是我用来从客户表中选择所有数据的代码


$$(document).on('page:init', '.page[data-name="home_employee"]', function(e) {

    console.log('this is page employee');

    var sqlget = 'SELECT * FROM `customers`';

    //this is select the data from customers [emplotee_table (home_employee.html)]
    connection.query(sqlget, function(error, results, fields) {


        for (i = 0; i < results.length; i++) {

            $$(document).find('#employee_table').append($$('<tr data-id="' + results[i].id + '"> ' +
                '<td class="checkbox-cell">' +
                '<label class="checkbox">' +
                '<input type="checkbox">' +
                '<i class="icon-checkbox"></i>' +
                '</label>' +
                '</td>' +
                ' <td style="font-family:Poppins-Medium;" class="label-cell"> ' + results[i].name + ' </td>' +
                ' <td class="numeric-cell">' + results[i].telephone + '</td> ' +
                ' <td class="numeric-cell">' + results[i].order_num + '</td> ' +
                '<td class="numeric-cell">' + results[i].juice1_num + '</td> ' +
                '<td class="numeric-cell">' + results[i].juice2_num + '</td> ' +
                '<td class="numeric-cell">' + results[i].juice3_num + '</td> ' +
                '<td class="numeric-cell">' + results[i].date + '</td> ' +
                '</tr>'));
        }
    });

});

table screenshot at here

如何让 javascript 计算时间戳?还是我需要更改 mysql 结构才能完成这项工作?

【问题讨论】:

  • 您可以使用Date 对象比较日期。关于删除数据,您可以使用array.filter。类似:var maxDate = new Date(); maxDate.setDate(maxDate.getDate() + 30); var filteredResult = results.filter((result) =&gt; +new Date(result.date) &lt; +maxDate)。但是为了给你一个具体的答案,我还需要样本数据
  • 那么我如何给你一个示例数据
  • 你可以试试我上面的建议。如果它不起作用,我们可以使用工作示例进行更深入的研究
  • 检查我的答案,我认为它可以做我想做的,或者你可以给我一些建议

标签: javascript mysql node.js html-framework-7


【解决方案1】:

我用了一些技巧来做到这一点

var sqldeletetime = "DELETE FROM customers WHERE date < DATE_SUB(now(), INTERVAL 30 DAY)";

    connection.query(sqldeletetime, function(err, result) {
        if (err) throw err;
        console.log("delete every record pass 30 days");
    });

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多