Comments (1)
I believe it's working as intended. Your initial datetime is 3AM the 29th in IDT (midnight UTC), and when doing the minus one day operation we land on the 28th at 3AM IST.
Regarding your linked issue, 24 hours !== 1 day during a daylight saving transition. If you substract 24 hours from your date, you will land on the 28th at 2AM IST.
// process.env.TZ = 'Asia/Jerusalem';
import { subDays, subHours } from 'date-fns';
const date = new Date('2024-03-29T00:00:00.000Z');
const dateMinusOneDay = subDays(date, 1);
const dateMinus24Hours = subHours(date, 24);
console.log(date.toISOString(), date.getTimezoneOffset()); // 2024-03-29T00:00:00.000Z -180
console.log(date.toString()); // Fri Mar 29 2024 03:00:00 GMT+0300 (Israel Daylight Time)
console.log(dateMinusOneDay.toISOString(), dateMinusOneDay.getTimezoneOffset()); // 2024-03-28T01:00:00.000Z -120
console.log(dateMinusOneDay.toString()); // Thu Mar 28 2024 03:00:00 GMT+0200 (Israel Standard Time)
console.log(dateMinus24Hours.toISOString(), dateMinus24Hours.getTimezoneOffset()); // 2024-03-28T00:00:00.000Z -120
console.log(dateMinus24Hours.toString()); // Thu Mar 28 2024 02:00:00 GMT+0200 (Israel Standard Time)
Bonus: if you wanted the operation to happen in UTC instead, have a look at the UTCDate companion library.
Hope this clarified things!
from date-fns.
Related Issues (20)
- Typo in constructFrom example in documentation HOT 1
- What happened to the addBusinessDays function? HOT 3
- Optional datetime parsing with brackets
- formatters.mjs export issue HOT 2
- Module not found: Can't resolve 'date-fns' HOT 1
- Error TS2614: Module has no exported member HOT 4
- addMinutes returning Invalid Date on Safari HOT 1
- How to localize `formatDuration` HOT 1
- Incorrect Output from `formatDistanceToNowStrict` or `formatDistanceToNow` for Week Duration HOT 1
- Is there a way to get both FP and UTC functionality? HOT 5
- Problem in lastDayOfWeek documentation HOT 2
- Clarify in isWeekend days
- Problem in intervalToDuration documentation HOT 1
- startOfMonth returning wrong date when input is first day of the month HOT 1
- Problem in subDays documentation HOT 1
- parseISO parses number '30' when it should error. HOT 2
- In version 3.6.0, format() shifts day backwards with string input, e.g. format('2024-04-03', 'yyyy-MM-dd') shift day to "2024-04-02" HOT 2
- Problem with format function: error with format 'dddo' HOT 2
- bug with addDays()? HOT 3
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 date-fns.