如何在 JavaScript 中将时间戳转换为 MySQL DateTime?
Posted
技术标签:
【中文标题】如何在 JavaScript 中将时间戳转换为 MySQL DateTime?【英文标题】:How to convert a Timestamp into MySQL DateTime in JavaScript? 【发布时间】:2021-11-08 11:34:24 【问题描述】:我有一个时间戳格式,就像下面的int
。
1631514003973
我将此值传递给使用 Node.JS 构建的 API。如何将其转换为mysql DateTime
格式?
我检查了this 的答案,但它是关于获取当前日期而不是转换时间戳。我来自 Java 背景,所以这对我来说有点混乱。
【问题讨论】:
按原样将时间戳发送到 MySQL 并在查询中转换。 dev.mysql.com/doc/refman/8.0/en/…dbfiddle.uk/… 这能回答你的问题吗? Function to convert timestamp to human date in javascript 【参考方案1】:您可以将 JavaScript 的 Date
对象直接传递给 MySQL。 MySQL 会自动从 Date
对象生成 DateTime
格式。
const date = new Date(1631514003973);
【讨论】:
【参考方案2】:我假设整数表示自Epoch time 以来的毫秒数。如果是这种情况,请尝试以下代码:
const numberOfMs = 1631514003973;
const epochDate = new Date(1970,1,1);
const myDate = new Date(epochDate .getTime() + numberOfMs);
【讨论】:
【参考方案3】:为此,您可以在 nodejs 层中使用任何一个。您需要使用下面将时间戳转换为日期并在 mysql 查询中使用。
const date = new Date(1631514003973);
console.log(date)
直接在mysql中使用可以使用mysql日期函数和
SELECT DATE_FORMAT(FROM_UNIXTIME(DATE(1631514003973)), '%e %b %Y') AS 'date_formatted' FROM table
【讨论】:
【参考方案4】:我们需要使用 JavaScript 创建一个新函数。
<script>
var timestamp = 1607110465663
var date = new Date(timestamp);
console.log("Date: "+date.getDate()+
"/"+(date.getMonth()+1)+
"/"+date.getFullYear()+
" "+date.getHours()+
":"+date.getMinutes()+
":"+date.getSeconds());
</script>
Output:
Date: 4/12/2020 19:34:25
如果你只想要日期(MM/DD/YYYY),你应该休息一下:
var timestamp=1370001284;
var todate=new Date(timestamp).getDate();
var tomonth=new Date(timestamp).getMonth()+1;
var toyear=new Date(timestamp).getFullYear();
var original_date=tomonth+'/'+todate+'/'+toyear;
console.log(original_date);
【讨论】:
以上是关于如何在 JavaScript 中将时间戳转换为 MySQL DateTime?的主要内容,如果未能解决你的问题,请参考以下文章