我希望在javascript中获取当前日期和时间: 2015-03-01 03:09:03
我怎样才能达到这样的格式? (在小于9的数字前显示零)
实际上我正在使用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();
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{ }
});
但是这段代码生成的日期和时间如下: 2015-3-1 3:9:3 根据mysql日期和时间标准无效。
任何人都可以指导我在这样的javascript中实现当前日期和时间的最佳解决方案: 2015-03-01 03:09:03
答案 0 :(得分:2)
如果值小于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;
}
答案 1 :(得分:0)
如果小于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());
答案 2 :(得分:0)
您可以使用momentjs
moment(currentDate).format('YYYY-MM-DD hh:mm:ss');
更好的解决方案是使用knexjs等查询构建器,它会自动将您的数据序列化为SQL查询,因此您不必担心所有的怪癖和细节(并且还会保护你反对SQL注入)
答案 3 :(得分:0)
试试这个:
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"
答案 4 :(得分:0)
如何使用toISOString()
?浏览器兼容性表显示了广泛的支持。
所以你的表达将成为一个单一的内容:
new Date().toISOString().slice(0, 19).replace('T', ' ');
生成的输出:
“2017-06-29 17:45:52”