【问题标题】:how to manipulate date- adding days- in angularjs controller如何在 angularjs 控制器中操作日期 - 添加天数
【发布时间】:2015-12-03 07:38:40
【问题描述】:

我遇到了一个问题,我通过 ng-model in controller 得到了一个日期字符串,如 "15-12-03",我该如何自动正确地在此日期字符串中添加 20 天或 3 个月

因为我想用不同的日期数据重复多次 $http.post 调用服务器,在每次调用中,我需要发布一个日期,例如,20 天后到上一次调用中的上一个日期.重复的次数可以btw改变,可能是4次,可能是10次。

我知道在服务器端,我们有一个 MOMENT 模块,它可以像 moment.add(20, 'days') 一样工作。但我不想在 server.js 上工作来处理这个操纵日期的过程,因为我不想在一个 app.post 中多次调用数据库,而且我也不知道该怎么做..

无论如何,有没有人知道如何在控制器中为日期字符串“15-12-03”添加 20 天。

问候

【问题讨论】:

  • 这里的 03 表示 1903 或 2003,因为通常当有 2 位数字时,它代表 19 世纪 ..
  • 表示第三天,"15-12-03" == "2015-12-03" == "YY-MM-DD",
  • 那么 90-12-03 的意思是“2090-12-03”?
  • 日期的格式无所谓,不管是“YY-MM-DD”还是“DD-MM-YY”,都只是一个格式伴侣

标签: angularjs node.js date controller


【解决方案1】:

我会先将日期字符串转换为日期对象

var dateObject = new Date(yourDateString);

那么你就可以简单的操作这个对象了,比如像这样

dateObject = dateObject.setMonth(dateObject.getMonth()+anyNumber);

您可以在此处阅读有关 Date 类的更多信息 W3C date reference.

如果您需要将日期对象转换回字符串,您可以运行toString() 方法。

如果您需要以特定格式发送日期字符串,您可以通过获取不同的日期值(例如 getMonth(), getFullYear() 等)来创建您需要的格式,并将您的字符串构建为所需的格式。

【讨论】:

  • 嗨,感谢重播。其实我不认为 setmonth 和 Date 对象可以在控制器中使用。但是,我找到了一种方法,例如,使用 Moment 模块在服务器端获取多个时间,并将多个查询合并在一起,只调用一次 mysql,它现在可以工作了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-18
  • 2013-12-06
相关资源
最近更新 更多