获取当前日期和时间的javascript格式:2015-03-01 03:09:03

Get current date and time in javascript of format: 2015-03-01 03:09:03

本文关键字:2015-03-01 格式 javascript 当前日期 时间 获取      更新时间:2023-09-26

我想在javascript中像这样获得当前日期和时间:2015-03-01 03:09:03

如何实现这样的格式?()

实际上我是比较日期和时间与mysql日期和时间在NODE.JS与mysql插件。所以我的javascript日期和时间格式必须与mysql默认的日期和时间格式相同,即:2015-03-01 03:09:03

当前我正在使用:

 var currentdate     = new Date(); 
 var datetime        = currentdate.getFullYear() + "-" +
                       (currentdate.getMonth()+1)  + "-"+
                       currentdate.getDate() + " "  + 
                       currentdate.getHours() + ":"   +
                       currentdate.getMinutes() + ":" + 
                       currentdate.getSeconds();

Mysql在NODE.JS中的查询:

var paramUpdate = {}
stateObject.connection.query("UPDATE timersDb SET notificationFlag = '1' 
                              WHERE requestTime < '"+datetime+"' AND
                              notificationFlag = '0'", 
                              paramUpdate , function(err, rows){
                                            if(err){
                                                throw err;
                                            } 
                                            else{ } 
                                        });

但是这段代码生成的日期和时间是这样的:2015-3-1 3:9:3根据mysql的日期和时间标准,这是无效的。

谁能指导我什么是最好的解决方案,以实现当前的日期和时间在javascript像这样:2015-03-01 03:09:03

您需要创建一个函数,如果值小于10,将添加前导0。试试这个:

var currentdate     = new Date(); 
var datetime        = addZero(currentdate.getFullYear()) + "-" +
                      addZero(currentdate.getMonth()+1)  + "-"+
                      addZero(currentdate.getDate()) + " "  + 
                      addZero(currentdate.getHours()) + ":"   +
                      addZero(currentdate.getMinutes()) + ":" + 
                      addZero(currentdate.getSeconds());
function addZero(str)
{
    return str < 10 ? ('0' + str) : str;
}

你所需要做的就是在小于10的情况下加上零。

 var currentdate = new Date();
var appendZero = function (value) {
    if (parseint(value) > 9) {
        return value;
    } else {
        return "0" + value.toString();
    }
}
var datetime = currentdate.getFullYear() + "-" +
    appendZero(currentdate.getMonth() + 1) + "-" +
    appendZero(currentdate.getDate()) + " " +
    appendZero(currentdate.getHours()) + ":" +
    appendZero(currentdate.getMinutes()) + ":" +
    appendZerocurrentdate.getSeconds());

试试这个:

 var currentdate     = new Date(); 
 var datetime        = currentdate.getFullYear() + "-" +
                       ('0' + (currentdate.getMonth()+1)).slice(-2)  + "-"+
                       ('0' + currentdate.getDate()).slice(-2) + " "  + 
                       ('0' + currentdate.getHours()).slice(-2) + ":"   +
                       ('0' + currentdate.getMinutes()).slice(-2) + ":" + 
                       ('0' + currentdate.getSeconds()).slice(-2);
> datetime
#"2015-05-31 22:15:59"

你可以使用momentjs

moment(currentDate).format('YYYY-MM-DD hh:mm:ss');

更好的解决方案是使用查询构建器,如knexjs,它将自动将您的数据序列化到SQL查询中,因此您无需担心所有的奇怪和细节(并且还将保护您免受SQL注入)

使用toISOString()如何?浏览器兼容性表显示了广泛的支持。

所以你的表达式将是一行:

new Date().toISOString().slice(0, 19).replace('T', ' ');

生成的输出:

"2017-06-29 17:45:52 "