Comments (10)
It looks again a DST transition issue. Will look into it when time permits
from cron-parser.
Thanks for the report
from cron-parser.
Can i somehow disable timezone handling? I don't need it for this particular case
EDIT: Might also be relevant, my timezone is Lisbon (GMT+1 currently because of DST)
from cron-parser.
I would use the latest 1.x.x
version.
from cron-parser.
That seems to work perfectly, thanks! If you need some more information when debugging the issue just hit me up! 👍
from cron-parser.
@santigimeno @JohnyDays a good catch. Let me know how this is going. Thanks for the reporting @JohnyDays!
from cron-parser.
I've been looking a little into this. Changing your code to use moment
with timezone information should do it:
var expression = "0 12 * * *"
var cron = require("cron-parser")
var moment = require('moment-timezone');
var currentDate = moment().tz('Europe/Lisbon');
var iterator = cron.parseExpression(expression, {currentDate:currentDate})
for (var i=0; i<40;i++) {
console.log(iterator.next().toString());
}
from cron-parser.
For the issue itself, I have reduced the case to this. It's due to how moment.startOf()
behaves. I don't know if it's a bug or it works as expected.
'use strict';
const moment = require('moment-timezone');
var m = moment(new Date('Sun Oct 30 2016 02:00:00 GMT+0200'));
console.log(m.toString(), '<-- Just 1 hour before the DST end @ Europe/Madrid');
m.add(1, 'hours');
console.log(m.toString(), '<-- DST end transition @ Europe/Madrid works correctly');
m.startOf('hour');
console.log(m.toString(), '<-- Smthing wrong?? It goes back to the previous hour');
It's output being:
Sun Oct 30 2016 02:00:00 GMT+0200 <-- Just 1 hour before the DST end @ Europe/Madrid
Sun Oct 30 2016 02:00:00 GMT+0100 <-- DST end transition @ Europe/Madrid works correctly
Sun Oct 30 2016 02:00:00 GMT+0200 <-- Smthing wrong?? It goes back to the previous hour
OTOH, if the timezone is explicitly used, it works as expected
'use strict';
const moment = require('moment-timezone');
var m = moment(new Date('Sun Oct 30 2016 02:00:00 GMT+0200')).tz('Europe/Madrid');
console.log(m.toString(), '<-- Just 1 hour before the DST end @ Europe/Madrid');
m.add(1, 'hours');
console.log(m.toString(), '<-- DST end transition @ Europe/Madrid works correctly');
m.startOf('hour');
console.log(m.toString(), '<-- Everything correct. It remains in the same hour');
It's output being
Sun Oct 30 2016 02:00:00 GMT+0200 <-- Just 1 hour before the DST end @ Europe/Madrid
Sun Oct 30 2016 02:00:00 GMT+0100 <-- DST end transition @ Europe/Madrid works correctly
Sun Oct 30 2016 02:00:00 GMT+0100 <-- Everything correct. It remains in the same hour
Thoughts? /cc @harrisiirak @mj1856
from cron-parser.
It looks like this issue: moment/moment#2749
from cron-parser.
Tentative fix #73. /cc @harrisiirak @JohnyDays
from cron-parser.
Related Issues (20)
- cron job get stopped with no error automatically HOT 5
- Use es6 modules (error: module undefined) HOT 2
- Stringify argument not documented.
- fields.dayOfWeek = [1,3,5] generates incorrect cron expression HOT 5
- Example in README is incorrect HOT 1
- v4.8.0 fields.dayOfWeek = [1,3,5,6] generates incorrect cron expression HOT 1
- parseExpression('') returns valid CronExpression HOT 1
- Time zone formatting not working as expected HOT 1
- parseString方法处理spring格式的cron时生成的fields错位了
- Pull Request? HOT 4
- suggestion for iterator example
- Yes, I've also seen it quite frequently in the past. More fun (and actually practical) reasoning behind naming conventions: https://stackoverflow.com/a/41967120/143788 HOT 1
- cron expression does not match result HOT 2
- Add nthDayOfMonth examples
- Unexpected behavior with hours range HOT 1
- ”0 0 22 * * ? * “ parser cron expression error HOT 2
- Unexpected behavior when the step size plus the starting value is higher than the maximal expected value HOT 1
- :bug: the cron time is error HOT 1
- Incorrect next time in UTC for cron expression in America/New_York timezone HOT 9
- The crontab expression '0 0 0 12W 6' is causing a parsing error HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cron-parser.