好吧,我不能用moment.js增加日期。我在我的代码中得到一个javascript日期对象,将其包装到moment
函数中,计算我需要添加到初始日期的小时数,并且在我使用.add
方法后没有任何反应。尝试做currentTime.add(2, 'hours')
这样的事情,但也没有效果。我做错了什么?
const currentTime = moment(ioc.get<Main.IArchiveManager>("ArchiveManager").getCurrentDate());
const speed = this.getData().speed;
const distance = this.calcDistanceFromPrevPoint(initialPoint,prevPoint);
const timeToReachPoint = (distance / speed) * 60;
const estimatedTime = currentTime.add(timeToReachPoint, 'hours');
debugger;
return estimatedTime;
答案 0 :(得分:2)
一切都按预期工作。在更改后,您正在记录 public void SendPost(string code)
{
// Create the web request object
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(Resource.Url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
//Start the request
webRequest.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), webRequest);
}
的值。请记住currentTime
更改了对象的值,它不返回副本,而是返回对象本身(为了更好的链接)。看看我的例子,你会看到来自console.log,调用两次但在不同的时间显示你期望的值。
.add()
var time = moment(new Date());
console.log(time);
time.add(2,'h');
console.log(time)
答案 1 :(得分:1)
您必须使用here(或format()
或.toString()
)来显示时刻对象的值。
请注意:
add
会改变原始对象,如果需要,可以使用.toISOString()
方法clone()
(前缀为_
)您的代码很好,您只是以错误的方式记录时刻对象:
const currentTime = moment();
console.log(currentTime.format())
const speed = 0.1//this.getData().speed;
const distance = 20.56;// this.calcDistanceFromPrevPoint(initialPoint,prevPoint);
const timeToReachPoint = (distance / speed) * 60;
const estimatedTime = currentTime.add(timeToReachPoint, 'hours');
console.log(estimatedTime.format())
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
&#13;