如何将时间戳转换为 JavaScript 中的 MySQL 日期时间?

How to convert a Timestamp into MySQL DateTime in JavaScript?

我有一个时间戳格式,就像下面的 int.

1631514003973

我将此值传递给使用 Node.JS 构建的 API。如何将其转换为 Mysql DateTime 格式?

我检查了 this 答案,但它是关于获取当前日期而不是转换时间戳。我来自 Java 背景,所以这让我有点困惑。

您可以将 JavaScript 的 Date 对象直接传递给 MySQL。 MySQL 将从该 Date 对象自动生成 DateTime 格式。

const date = new Date(1631514003973);

我假设整数表示自 Epoch time 以来的毫秒数。如果是这种情况,请尝试此代码:

const numberOfMs = 1631514003973; 
const epochDate = new Date(1970,1,1);
const myDate = new Date(epochDate .getTime() + numberOfMs);

我们需要使用 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);

为此,您可以在 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