As of April 12th, you must go to Progress SupportLink to create new support cases or to access existing cases. Please, bookmark the SupportLink URL and use the new portal to contact the support team.
I keep getting false outputs on all isBefore, isAfter, and isSame calls no matter the input. I've even tried:
modules.moment().isSame(modules.moment())
-- and output => false
F
FabrÃcio Massula Dutra
said
about 9 years ago
I think if You run modules.moment().isSame(modules.moment()) you should get a false output. Thats cause the declaration inside the isSame is made in a different time that the first one. (millisecs...)
R
Randolph
said
about 9 years ago
Thanks Fabricio. Good reasoning, and it makes sense...
But..... if that holds up then isAfter should not be 'false' as well, which when I try... it is.
Also... if I add an entire day I still get a false for isAfter.
var now = modules.moment();
var later = modules.moment().add('hours',1).add('days',1);
var output = "is Now before Later? by hour: " + now.isBefore(later);
now.isBefore(later) => false //no idea why....
M
Michael
said
about 9 years ago
Business Logic is currently using version 2.0.x of moment, which is not the most recent version (due to some compatibility issues that we are working through.) There is a bug in this version of moment where isBefore and isAfter will not actually take a moment as a parameter and return the correct result. You can achieve what you want by converting that moment into a string:
var result = modules.moment().isAfter(modules.moment().format()); // returns true
Note that isAfter is applicable here, not isBefore, because the inner expression is evaluated first, before the outer expression.
R
Randolph
said
about 9 years ago
You. are. awesome.
Thanks that worked like a charm, sending the format() value instead of just the moment() object. Not sure why i didn't try that before!
Randolph
I've tried with the following code:
function onRequest(request, response, modules){
var now = modules.moment();
var later = modules.moment().add('hours',1).add('days',1);
var output = "is Now before Later? by hour: " + now.isBefore(later, 'hours');
var output2 = "is Now before Later? in general: " + now.isBefore(later);
modules.logger.info(output + output2);
response.body = {"message": output+output2};
response.complete(200);
}
Any idea what the issue could be? Am I using the isBefore and isAfter incorrectly? I'm following the documentation provided by Kinvey and Moment.js.
Kinvey: http://devcenter.kinvey.com/phonegap/reference/business-logic/reference.html
Moment.js: http://momentjs.com/docs/#/query/is-before/
Thanks for your help anyone!