将mysql日期格式日期转换为javascript Date对象的最佳方法是什么?
mySQL日期格式为'YYYY-MM-DD'(ISO格式)。
答案 0 :(得分:43)
如果您澄清了无法更改传入日期的格式,则需要以下内容:
var dateParts = isoFormatDateString.split("-");
var jsDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2].substr(0,2));
原始回复:
是否有理由不能获取时间戳而不是日期字符串?这可以通过以下方式完成:
SELECT UNIX_TIMESTAMP(date) AS epoch_time FROM table;
然后将epoch_time引入JavaScript,这很简单:
var myDate = new Date(epoch_time * 1000);
乘以1000是因为JavaScript需要几毫秒,而UNIX_TIMESTAMP则需要几秒钟。
答案 1 :(得分:28)
最短快速的方法:
var mySQLDate = '2015-04-29 10:29:08';
new Date(Date.parse(mySQLDate.replace('-','/','g')));
答案 2 :(得分:2)
UNIX timestamp(自1970年1月1日以来的毫秒数)将是我的首选。
您可以将它作为整数传递,并使用JS setTime()方法从中创建JS Date对象。
答案 3 :(得分:2)
以AngularJS方式,感谢@Jonas Sciangula Street
.filter('toJSDate', function(){
return function (dateString) {
return new Date(Date.parse(dateString.replace('-','/','g')))
};
})
答案 4 :(得分:2)
现在 javascript 可以轻松做到这一点,不再需要 moment.js 或类似的 :) 人类可读和所需的语言。
var MySQLDate = '2021-01-26 16:35:00';
var JavaScriptDate1 = new Date(MySQLDate).toLocaleDateString(
'es-CO',
{
year: 'numeric',
month: 'long',
day: 'numeric',
hour12: true,
hour: '2-digit',
minute: '2-digit'
}
);
var JavaScriptDate2 = new Date(MySQLDate).toLocaleDateString(
'ko-KR',
{
year: 'numeric',
month: 'long',
day: 'numeric',
hour12: false,
hour: '2-digit',
minute: '2-digit'
}
);
console.log(JavaScriptDate1);
console.log(JavaScriptDate2);
答案 5 :(得分:1)
偶然发现这个看起来正是OP想要的,并且使用了jhurshman回答所以我+ 1编辑了它,但它不完整,因为它将使用00:00:00 GMT-0500 (CDT)
作为时间部分,因为它不是传递给日期对象(var jsDate)。
如果其他人想要创建完整的Javascript
date object
<强>例如:强>
Sat Mar 29 2014 23:24:28 GMT-0500 (CDT)
基于MySQL DATETIME格式
<强>例如:强>
'9999-12-31 23:59:59'.
您需要使用以下内容:
var dateParts = isoFormatDateString.split("-");
var jsDate = new Date(dateParts[0], dateParts[1] - 1, dateParts[2].substr(0, 2), dateParts[2].substr(3, 2), dateParts[2].substr(6, 2), dateParts[2].substr(9, 2));
当您创建日期对象时,它将在浏览器当前时区返回,但在大多数情况下,我会在后端进行时区转换。
答案 6 :(得分:1)
mySqlDate
的格式为&#34; yyyy-mm-dd&#34;。
var javaDate = new Date(mySqlDate);
这行代码对我来说很好。
答案 7 :(得分:0)
您可以将日期' - '拆分为分隔符并使用此构造函数:
var d = new Date(Y, M - 1, D);
答案 8 :(得分:0)
建立Jhurisman的答案。如果您还想设置日期时间,请使用以下内容:
var dateParts = mysqlDate;
var timeParts = dateParts[2].substr(3).split(":");
var jsDate = new Date(
dateParts[0],
dateParts[1] - 1,
dateParts[2].substr(0,2),
timeParts[0],
timeParts[1],
timeParts[2]
);
答案 9 :(得分:0)
虽然JS确实拥有足够的基本工具来执行此操作,但使用起来非常简单
/**
* Ashu, You first need to create a formatting function to pad numbers to two digits…
**/
function twoDigits(d) {
if(0 <= d && d < 10) return "0" + d.toString();
if(-10 < d && d < 0) return "-0" + (-1*d).toString();
return d.toString();
}
Date.prototype.toMysqlFormat = function() {
return this.getUTCFullYear() + "-" + twoDigits(1 + this.getUTCMonth()) + "-" + twoDigits(this.getUTCDate()) + " " + twoDigits(this.getUTCHours()) + ":" + twoDigits(this.getUTCMinutes()) + ":" + twoDigits(this.getUTCSeconds());
};
var date = new Date();
document.getElementById("date").innerHTML = date;
document.getElementById("mysql_date").innerHTML = date.toMysqlFormat();
console.log(date.toMysqlFormat());
Simple date:<div id="date"></div>
Converted Mysql Fromat: <div id="mysql_date"></div>
答案 10 :(得分:0)
function getJsDate(sqlDate){
var returnValue;
var timeString="00:00:00";
try{
var dateArray=sqlDate.trim().split(" ");
var dateString=dateArray[0];
if(dateArray.length>1){timeString=dateArray[1];}
console.log(timeString);
var yyyymmddArray=dateString.trim().split("-");
var hhmmssArray=timeString.trim().split(":");
returnValue = new Date(yyyymmddArray[0], (yyyymmddArray[1]-1), yyyymmddArray[2], hhmmssArray[0], hhmmssArray[1], hhmmssArray[2]);
}catch(err){
console.log("Error: "+ err.message);
}
return returnValue;
}
答案 11 :(得分:0)
也许是这样吗?
[Y,M,D,h,m,s] = '2020-11-06 16:00:00'.split(/[- :]/)
答案 12 :(得分:0)
这里是转换时间格式的函数。
Concat Fecha ID Nombre Doc Doc2 Prod Cantidad
0 123120210306 2021-03-06 00:00:00 1 Lolo 123 1 1564 1
1 123120210306 2021-03-06 00:00:00 1 Lolo 123 1 1674 2
2 123120210306 2021-03-06 00:00:00 1 Lolo 123 1 15665 1
3 123120210307 2021-03-07 00:00:00 6 Lolo 123 1 15665 1
4 125120210306 2021-03-06 00:00:00 2 Momo 125 1 1568 2
5 125220210306 2021-03-06 00:00:00 5 Coco 125 2 1568 1
6 136220210306 2021-03-06 00:00:00 3 PePe 136 2 1568 1
7 136220210306 2021-03-06 00:00:00 3 PePe 136 2 1678 1