你如何四舍五入/圆下来momentjs时刻最接近的分钟数?
我检查了文档,但似乎没有这方法.
请注意,我不希望将字符串四舍五入到最接近的分钟,我想要moment返回(或修改到位,也可以).我不想转换为字符串,转换回来也是如此.
谢谢.
根据要求,这里有一些代码:
var now = new moment(new Date());
if (now.seconds() > 0) {
now.add('minutes', -1);
}
now.seconds(0);
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我已经设法在这里手动完成了这一刻,但它似乎相当hacky.只是在一种更优雅的方式实现这一目标.
在使用webpack构建我的项目时,我通常需要来自npm模块的CommonJS中的模块.我需要在我的项目中使用时间 - 时区,但是在构建软件包时,您还必须构建来自时刻 - 时区的所有数据,这可能非常多.
此外,构建失败,出现以下错误:
ERROR in ./~/moment-timezone/data/packed/latest.json
Module parse failed: /site/node_modules/moment-timezone/data/packed/latest.json Line 2: Unexpected token :
You may need an appropriate loader to handle this file type.
| {
| "version": "2015a",
| "zones": [
| "Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q",
@ ./~/moment-timezone/index.js 4:15-51
Run Code Online (Sandbox Code Playgroud)
在这一点上,我不关心构建失败,因为我关于构建的大小,如果它实际上成功.虽然,显然失败的构建也需要在某个时候得到解决.
我会很感激有关如何处理这个问题的任何指示,特别是如果你们中的任何人使用webpack(或者也可能是browserify)遇到过同样的问题.
这两者之间的区别是什么:
var year = moment().format('YYYY');
var year = moment().year();
Run Code Online (Sandbox Code Playgroud)
它只是type of或其他什么?我只是好奇.
我有一个由用户创建的日期对象,浏览器填充时区,如下所示:
var date = new Date(2011, 05, 07, 04, 0, 0);
> Tue Jun 07 2011 04:00:00 GMT+1000 (E. Australia Standard Time)
Run Code Online (Sandbox Code Playgroud)
但是当我对它进行字符串化时,时区就会再见
JSON.stringify(date);
> "2011-06-06T18:00:00.000Z"
Run Code Online (Sandbox Code Playgroud)
在保留浏览器时区的同时获得ISO8601字符串的最好方法是使用moment.js并使用moment.format(),但当然如果我通过JSON.stringify内部使用的东西序列化整个命令(在这种情况下,AngularJS),这将无法工作)
var command = { time: date, contents: 'foo' };
$http.post('/Notes/Add', command);
Run Code Online (Sandbox Code Playgroud)
为了完整起见,我的域确实需要本地时间和偏移量.
我在moment.js尝试过这个
moment.duration(375,'days').humanize()
Run Code Online (Sandbox Code Playgroud)
得到"一年"的答案,但我希望"一年零十天".在moment.js中有没有办法获得完整的人性化价值?
我正在使用momentjs来处理我的Web应用程序中的日期.服务器返回所有日期,以毫秒为单位.现在我必须显示应用特定时区的日期(基于用户设置).
有没有办法全局设置时区而不是更改所有对momentjs的调用来处理它?
我无法通过以下方式获取MongoDB记录的JavaScript Date字符串.它继续使用我当地的时间.
var utc = moment.utc().valueOf();
console.log(moment.utc(utc).toDate());
Run Code Online (Sandbox Code Playgroud)
输出:
Tue Nov 11 2014 14:42:51 GMT-0500 (EST)
Run Code Online (Sandbox Code Playgroud)
我需要它在UTC中,所以我可以在Mongo中保留这个时间戳,所以类型就是Date.
我怎样才能做到这一点?
我在弹出窗口中使用了datepicker(ng-boostrap),我想将日期格式更改为dd-mm-yyyy.
似乎可以通过实现new NgbDateParserFormatter来替换默认值来解决它NgbDateISOParserFormatter.
但我想知道是否还有另一种方式.
更新:
NgbDateParserFormatter使用Moment.js的一个小实现(使用版本1.0.0-alpha.14的ng-bootstrap测试):
import {NgbDateParserFormatter, NgbDateStruct} from '@ng-bootstrap/ng-bootstrap';
import * as moment from 'moment';
export class NgbDateMomentParserFormatter extends NgbDateParserFormatter {
constructor(private momentFormat: string) {
super();
};
format(date: NgbDateStruct): string {
if (date === null) {
return '';
}
let d = moment({ year: date.year,
month: date.month - 1,
date: date.day });
return d.isValid() ? d.format(this.momentFormat) : '';
}
parse(value: string): NgbDateStruct {
if (!value) {
return null; …Run Code Online (Sandbox Code Playgroud) 我使用moment().格式('MMM YYYY')生成当前月份.使用当前月份我需要过去六个月.
如何使用moment.js减去一个月?
我试图使用以下方法获取上个月的最后一天:
var dateFrom = moment(dateFrom).subtract(1, 'months').format('YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)
哪里:
dateFrom = 2014-11-30
Run Code Online (Sandbox Code Playgroud)
但使用后
subtract(1, 'months')
Run Code Online (Sandbox Code Playgroud)
它返回日期
DATE_FROM: "2014-10-30"
Run Code Online (Sandbox Code Playgroud)
但是10月的最后一天是31.
我该怎么解决?
非常感谢任何帮助.