如何在DD-MM-YYYY中获取日期h:mm:ss:ssss使用时刻

时间:2017-11-21 10:42:51

标签: node.js mongodb date

我想知道有没有办法使用momentjs

捕获当前时间的毫秒数

我正在运作的场景是存储用户聊天消息,想要捕获发送消息的时间,目前我不知道该怎么做

我正在使用mongodb和nodejs  Mongoose架构如下所示

var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var moment = require('moment');
Schema = mongoose.Schema;

//  https://www.npmjs.com/package/mongoose-unique-validator
var categorySchema = new mongoose.Schema(
    {
        CatId: { type: Number, required: true, unique: true },
        Name: { type: String, required: true, unique: true },
        Description: String,
        Is_Active: Number,
        Db_Created_TimeStamp: { type: Date, default: moment().format('YYYY-MM-DD h:mm:ss a') },
        Db_Updated_TimeStamp: { type: Date, default: moment().format('YYYY-MM-DD h:mm:ss a') },
    }, { collection: "Categories" })
categorySchema.plugin(uniqueValidator);
mongoose.model('Categories', categorySchema);

当我在数据库中保存条目时如下所示

{
    "_id" : ObjectId("5a13fddf620d8e4ba85e476c"),
    "Is_Active" : NumberInt(1),
    "Description" : "spsss00ort",
    "Name" : "ssss",
    "CatId" : NumberInt(103),
    "Db_Updated_TimeStamp" : ISODate("2017-11-21T10:19:37.000+0000"),
    "Db_Created_TimeStamp" : ISODate("2017-11-21T10:19:37.000+0000"),
    "__v" : NumberInt(0)
}

寻找一种方法来捕获条目的毫秒数

2 个答案:

答案 0 :(得分:0)

如果要存储时间戳,只需将架构更改为

即可
  Db_Created_TimeStamp:{type:Number,default: moment.utc().valueOf()},
  Db_Updated_TimeStamp:{type:Number,default: moment.utc().valueOf()}, 

这将为你的db

存储utc毫秒

答案 1 :(得分:0)

我认为您希望以毫秒为单位存储时间,无论如何,在创建架构时,您可以传递时间戳对象,这将自动创建这两个字段。

var categorySchema = new mongoose.Schema(
  {
      CatId:{ type: Number, required: true, unique: true },
      Name : { type: String, required: true, unique: true },
      Description : String,
      Is_Active:Number
  },{ collection: "Categories",timestamps: { createdAt: 'Db_Created_TimeStamp' ,updatedAt:'Db_Updated_TimeStamp'} })