转换一个MySQL日期为Javascript日期
什么将是一个MySQL日期格式转换成JavaScript Date对象的最佳方式?转换一个MySQL日期为Javascript日期
mySQL的日期格式为 'YYYY-MM-DD'(ISO格式)。将是我的优先选择
鉴于你澄清,你不能改变传入的日期格式,你需要的东西是这样的:
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给秒。
我无法改变数据返回给我的方式。我有ISO格式的日期,我需要在客户端进行转换。 – 2009-11-19 19:23:59
您可以分割日期“ - ”作为分隔符,并使用此构造函数:
var d = new Date(Y, M - 1, D);
以及如何将它分割? – 2009-11-19 19:24:29
if ds ='YYYY-MM-DD':ds.split(' - ') – 2009-11-19 20:07:02
在这看来做的确实是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));
它会在浏览器返回当前时区为正在创建的日期对象,但我会做在大多数情况下与后端的时区转换。
建立到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]
);
在AngularJS这样,由于@Jonas Sciangula街
.filter('toJSDate', function(){
return function (dateString) {
return new Date(Date.parse(dateString.replace('-','/','g')))
};
})
mySqlDate
格式为“yyyy-mm-dd”。
var javaDate = new Date(mySqlDate);
这行代码工作正常,我。
也可以使用“yyyy-mm-dd hh:ii:ss”格式 – ling 2017-08-15 19:19:17
虽然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>
你是否有一个具体问题?你试过什么了? AAre在日期传递给javascript Date对象时有问题吗? – Zak 2009-11-19 19:15:27
Date.parse('2009-01-01');不起作用。试图找到一种方法来转换它。日期是通过来自另一家公司的json对象来的,它以ISO格式返回日期。 – 2009-11-19 19:22:08