什麼將是一個MySQL日期格式轉換成JavaScript Date對象的最佳方式?轉換一個MySQL日期爲Javascript日期
mySQL的日期格式爲 'YYYY-MM-DD'(ISO格式)。將是我的優先選擇
什麼將是一個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
UNIX timestamp(自1970年1月1日毫秒)。
可以圍繞把它作爲一個整數,並使用JS setTime()方法從它使一個JS Date對象。
您可以分割日期「 - 」作爲分隔符,並使用此構造函數:
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