簡體   English   中英

如何使用 mongoose 和 node.js 將 mongodb 時間戳轉換為 dd-mm-yyyy 格式?

[英]How to convert mongodb timestamps to dd-mm-yyyy format using mongoose and node.js?

我正在開發一個功能,我需要以dd-mm-yyyy格式顯示存儲在 mongodb 中的時間戳。 但是我對如何編寫查詢以獲取所需格式的時間戳感到困惑。

下面是下拉集合的示例數據。

/* 1 */
{
    "_id" : ObjectId("5e787e988f3b3f3a240e846e"),
    "status" : true,
    "company" : ObjectId("5e787e988f3b3f3a240e846d"),
    "type" : "ticketstatus",
    "name" : "Open",
    "createdAt" : ISODate("2020-03-23T09:17:12.374Z"),
    "updatedAt" : ISODate("2020-03-23T09:17:12.374Z")
}

/* 2 */
{
    "_id" : ObjectId("5e787e988f3b3f3a240e846f"),
    "status" : true,
    "company" : ObjectId("5e787e988f3b3f3a240e846d"),
    "type" : "ticketstatus",
    "name" : "Closed",
    "createdAt" : ISODate("2020-03-23T09:17:12.374Z"),
    "updatedAt" : ISODate("2020-03-23T09:17:12.374Z")
}

/* 3 */
{
    "_id" : ObjectId("5e7883ce8f3b3f3a240e8472"),
    "status" : true,
    "company" : ObjectId("5e787e988f3b3f3a240e846d"),
    "type" : "ticketpriorities",
    "name" : "High",
    "createdAt" : ISODate("2020-03-23T09:39:26.167Z"),
    "updatedAt" : ISODate("2020-03-23T09:39:26.167Z")
}

到目前為止正在使用的查詢,

dropdowns.find({"company":ObjectId('5e787e988f3b3f3a240e846d')});

獲取日期的正確方法是什么? 我需要編寫查詢還是需要使用代碼行來操作查詢返回的數據? 請建議我最好和最常用的方法。 謝謝。

您應該使用諸如momentdate-fns 之類的庫在客戶端格式化您的日期。

例如,使用 date-fns:

import { format } from 'date-fns'

format(new Date(), "dd-MM-yyyy")
// 16-04-2020

date-fns 是近來的首選庫,因為它是模塊化的,這意味着您只能導入您需要的函數(無從屬關系)。 請務必考慮最終用戶的時區。

如果您想在服務器端執行此操作,請使用 $dateToString 和上面評論中提到的聚合:

db.collection.aggregate([
  {
    "$match": {
      company: ObjectId("5e787e988f3b3f3a240e846d")
    }
  },
  {
    "$project": {
      createdAt: {
        $dateToString: {
          format: "%d-%m-%Y",
          date: "$createdAt"
        }
      },
      updatedAt: {
        $dateToString: {
          format: "%d-%m-%Y",
          date: "$updatedAt"
        }
      },

    }
  }
])

這里的工作示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM