Tag: momentjs

momentjs – fromNow()方法在通用(同构)的js应用程序中

我有一个应用程序是用node.js和react.js构build的,并且是通用的(或者是之前调用的“同构”),并且使用REST API来获取数据。 在某些组件的render方法中,我以2 days ago或few seconds ago格式显示date,在这种情况下,moment.js完美地工作。 我正在谈论它的方法fromNow() ,例如: render() { const { date } = this.props; const formattedDate = moment(date).fromNow(); return ( <div>{formattedDate}</div> ); } 但是这是问题: Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on […]

使用Moment.js和Angular的时间

我正在使用Angular与angular-moment软件包。 使用am-time-ago指令 <span am-time-ago="message.time"></span> 给出了5 hours ago , a day ago , 15 days ago 。 Questoin :我们怎样才能把它格式化成自定义格式5d , 1d , 15d ?

两个时间戳之间错误的时差(hh:mm:ss)

使用moment.js,我想得到两个时间戳之间的时间差。 做以下事情, var prevTime = moment('23:01:53', "HH:mm:SS"); var nextTime = moment('23:01:56', "HH:mm:SS"); var duration = moment(nextTime.diff(prevTime)).format("HH:mm:SS"); 我得到这个结果: 01:00:03 为什么我有一个小时的差距? 秒和分钟似乎运作良好。 做完这些之后,我尝试了以下内容: function time_diff(t1, t2) { var parts = t1.split(':'); var d1 = new Date(0, 0, 0, parts[0], parts[1], parts[2]); parts = t2.split(':'); var d2 = new Date(new Date(0, 0, 0, parts[0], parts[1], parts[2]) – d1); […]

如何在几年和几个月内格式化一个持续时间?

我使用node.js w / moment.js格式化时间。 我想要得到一个病人的年龄格式在几个月和几年。 这是迄今为止我所得到的: patient: { … birthDate: moment('Dec 15, 2009'), getAgeString: function() { var age = moment.duration(moment() – this.birthDate); return util.format('%d years, %d months', age.years(), age.months()); } } getAgeString函数给了我3 years, 1 months ,这是非常接近我想要的,除了我希望它被正确地复数化。 据我所知,时间不能提供适当的复数持续时间。 this.birthDate.fromNow(true)是“聪明的”,但它似乎没有提供任何自定义选项,以显示什么。 我可以得到moment.js做我想做的,还是有一个更好的时间库节点? 这将不得不现在做: getAgeString: function() { var age = moment.duration(moment() – this.birthDate); var years = age.years(), months = […]

将utc时间戳转换为使用偏移量的本地时间秒数

我需要在几秒钟内使用utc偏移量将utc时间戳转换为本地时间。 我曾经使用时区时区库。 这是我的代码 var moment = require('moment-timezone'); var timestamp = Date.now(); var IST1 = moment(timestamp).utcOffset('+05:30').format('ddd MMM DY hh:mm:ss A ') console.log("IST1 '+05:30' –> ", IST1); var IST2 = moment(timestamp).utcOffset('+19800').format('ddd MMM DY hh:mm:ss A ') console.log("IST2 '+19800' –> ", IST2); 但是我得到这样的输出 IST1 '+05:30' –> Mon Jun 19 2017 01:39:23 PM IST2 '+19800' –> Tue Jun 20 […]

查找下一个繁忙时间的免费小时

使用Google Calendar API时,需要: start (epoch时间) end (epoch时间) timeZone (即America/Los_Angeles ) 响应是一个名为busy的数组,其中包含{ start <Date>, end<Date>} 我的目标:findstart和end之间的下一个空闲时间。 有以下限制: 必须在工作日(星期一至星期五) 必须在工作时间(上午9时至下午5时) 这是我试过的: 从上午9点到下午5点,每天手动创build更多busy对象 手动为周六和周日创build更多busy对象 合并所有busy街区,所以不会有交集 现在采取相反的时间,这是free时间。 第一个空闲时间对象( {start <Date>,end <Date>} ),其start – end > = 1 hour 是下一个空闲时间。 如果没有free对象大于1小时,则在start和end之间不存在空闲时间 这个问题听起来太多了,我想听听build议 这是我的代码到目前为止(工作): const moment=require('moment-timezone'); const chrono = require('chrono-node'); const ms = require('ms'); /** * given start and end dates […]

时刻15日

我开发一个简单的应用程序,显示每日预算,直到下一次付款。 为此,我正在使用momentJS。 问题是我的应用程序中的逻辑是错误的。 我先find哪一天,然后find这个月的第一天( date(1) ),然后我总结1个月和14天。 但是,无论何时下个月(如现在-02/12),当然会告诉我,未来的15日是在2月份。 长话短说,我如何find未来的第15个使用时刻? 这是我的申请: $scope.nextDate = moment().date(1).add(1, "months").add(14,"days"); //calculate when is the next 15th $scope.difference = Math.floor(moment.duration($scope.nextDate.diff($scope.today)).asDays()); 提前致谢!

在sails中创buildUTC时间戳而不会覆盖“createdAt”和“updatedAt”

我想用UTC时间戳(createTimeUTC)更新我的一个模型中的字段。 但我不想覆盖/重写'createdAt'字段。 我尝试导入时刻,并使用moment.utc().format()更新创buildlogging。 但即使时刻似乎给予适当的UTC格式时间戳,数据库中的logging仍然被创build为“空”。 这是我的模型: module.exports = { attributes: { …. createTimeUTC: { type: 'datetime', }, }, afterCreate:function(values,next) { var moment=require('moment'); values.createTimeUTC= moment.utc().format(); console.log("after create: "+ values.createTimeUTC); next(); }; 这里是我在控制器中的创build方法: myControllerMethod: function(req, res) { var moment=require('moment'); var params = req.params.all(); params.owner = req.session.user.id; Note.create({owner: params.owner, title: params.title, content: params.content, createTimeUTC: params.createTimeUTC }).exec(function(err, note) { if(err) […]

Mongodb:基于ISODate格式的查询

假设Mongodb数据库中的示例文档如下所示: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } { "date" : ISODate("2015-11-30T15:24:00.251Z") } { "date" : ISODate("2012-01-10T18:36:00.101Z") } 预期: { "date" : ISODate("2015-11-09T05:58:19.474Z") } { "date" : ISODate("2014-10-25T07:30:00.241Z") } Iam有兴趣查找在“date”字段中的时间在04:00至08:00之间的文件,无论date,月份和年份如何。 间接查询必须匹配date字段中的任何“YYYY-MM-DDT”。 我的方法是,从节点查询所有文档中的所有文档,然后查询匹配查询的每个文档,比较文档的“date”字段与“yyyy-MM-DDT”+“required_time”(“YYYY-通过使用moment.js模块将MM-DD从每个文档的“date字段”中复制,以便通过转换为moment()并获取月份,date和年份来进行比较。 有没有什么方法可以直接得到相同的结果? 注意:我正在使用nodejs连接到mongodb

Moment.js 24小时时间格式,处理24小时

我正在使用momentjs来检查火车旅行的两个时间戳之间的分钟差异。 我使用的API以24小时制格式返回数据(momentjs:HH:mm:ss)。 如果旅程继续到第二天,则时间显示为例如“24:12:00”,这很奇怪。 Momentjs无法处理这个问题,如果我尝试用这些值来计算时间差异,我会得到“NaN”。 所以我创build了一个函数将任何“24”出现转换为“00”。 function maintainHour (timeString) { var splitted = timeString.split(':'); if(splitted[0] == '24') { splitted[0] = '00'; } return splitted[0] + ':' + splitted[1] + ':' + splitted[2]; } 如果我使用diff()函数来检查一个时间戳和具有“00”小时的时间戳之间的差异,我不能区分它是当前date还是第二天的时间戳。 因此,如果当前时间是16:00(例如今天上午),而不是正X分钟,直到即将到来的一天的24小时,那么差异将在-900左右。 任何想法如何处理这个?