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

获取javascript格式的当前日期和时间:2015-03-01 03:09:03,javascript,mysql,node.js,date,Javascript,Mysql,Node.js,Date,我想用javascript获取当前日期和时间,如下所示:2015-03-01 03:09:03 如何实现这种格式?(小于9时在数字前显示零) 实际上,我是在NODE.JS和mysql插件中将日期和时间与mysql日期和时间进行比较。因此,我的javascript日期和时间格式必须与mysql默认日期和时间格式相同,即:2015-03-01 03:09:03 目前我正在使用: var currentdate = new Date(); var datetime = cu

我想用javascript获取当前日期和时间,如下所示:2015-03-01 03:09:03

如何实现这种格式?(小于9时在数字前显示零)

实际上,我是在NODE.JS和mysql插件中将日期和时间与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();
NODE.JS中的Mysql查询:

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{ } 
                                        });
var paramUpdate={}
stateObject.connection.query(“UPDATE timersDb SET notificationFlag='1'
其中requestTime<“+datetime+”,并且
notificationFlag='0',
参数更新,函数(错误,行){
如果(错误){
犯错误;
} 
else{}
});
但这段代码生成的日期和时间如下:2015-3-13: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;
}
var currentdate=新日期();
var datetime=addZero(currentdate.getFullYear())+“-”+
addZero(currentdate.getMonth()+1)+“-”+
addZero(currentdate.getDate())+“”+
addZero(currentdate.getHours())+“:”+
addZero(currentdate.getMinutes())+“:”+
addZero(currentdate.getSeconds());
函数addZero(str)
{
返回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());
你可以用

更好的解决方案是使用一个查询生成器,它会自动将您的数据序列化为SQL查询,这样您就不必担心所有的怪癖和细节(还可以防止SQL注入)

尝试以下方法:

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;
}
 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"
使用如何?浏览器兼容性表显示了广泛的支持

因此,您的表达式将是一行:

new Date().toISOString().slice(0, 19).replace('T', ' ');
生成的输出:

“2017-06-29 17:45:52”


嗯,实际上还有一件事。mysql日期和javascript日期有一些不同。为什么会这样?那是因为时区问题。。您的服务器和客户端将位于不同的时区。。new Date()提供带有本地时区的日期