如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章

无法在模板中将 UTC 时间戳转换为本地时间

如何在 Presto 中将时间戳转换为日期?

如何将python时间戳字符串转换为纪元?

如何在 python 中将普通时间戳转换为纪元时间戳

如何在雪花中将时间戳转换为日期

如何在 kotlin 中将纪元时间戳转换为 unix 十六进制时间戳?