javascript - moment.startOf 月份转到上个月的 31 日
问题描述
为了聚合一些东西,我需要在数据对象中设置月份。我正在尝试使用此代码来获取每个月的开始
moment("2018-09-04T13:06:07.397Z").startOf('month').toDate()
但是,这会返回日期 2018-08-31T22:00:00.000Z。
我怎样才能返回这个实际月份的开始?
解决方案
您的输入字符串以 结尾Z
,因此以 UTC 表示时间,您必须使用moment.utc(String)
而不是解析它moment(String)
默认情况下,moment 解析并以本地时间显示。
如果要解析或显示 UTC 时刻,可以使用
moment.utc()
代替moment()
.
console.log(moment.utc("2018-09-04T13:06:07.397Z").startOf('month').toDate());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
推荐阅读
- javascript - 无法从 Javascript 中的对象访问属性
- javascript - 试图理解函数构造
- node.js - 如何在集成测试中使用 Sinon 存根服务?
- c# - 过程需要更多时间在连续迭代中完成
- python - virtualenvwrapper 已安装但无法正常工作
- laravel - 如何更改导出的csv列的格式-laravel excel
- nestjs - Nest.js - 嵌套 cli 没有获取最新的文件更改
- c# - 在 ArrayList C# 中搜索
- apache-spark - 错误:Pyspark pandas_udf 文档代码的“java.lang.UnsupportedOperationException”
- sql-server - Microsoft.EntityFrameworkCore.Database.Command:错误:执行 DbCommand 失败