Comments (10)
And somes holydays (like Easter) are not same dates each year.
I think you better have to do your own extension :
MyCarbon extends Carbon {
public function isHoliday() {
return in_array([ $this->month, $this->day ], [
[12, 25], // Christmas
[01, 01], // New Year
...
]);
}
}
from carbon.
I think what Carbon needs is a macro functionality so you can add your own feature over it. If you need to define the holidays yourself this is pretty much what this would be.
Carbon::macro('isHoliday', function ($date) {
return in_array($date->format('Y-m-d'), [holidays]);
});
Carbon::parse('some-date')->isHoliday();
Something like that, that would allow people to add helpers for their edge cases, what do you think @briannesbitt ?
from carbon.
That would be incredibly complicated, do you know how many days are considered holidays all countries combined ?
from carbon.
I think, but if we would use, we can add a config array of days for example:
'Christmas' => [12,25], //to repeat festive days every year
'New Year' => [01,01],
'my festive' => [2014,05,01] //to only day timely festive
from carbon.
great! thanks!
from carbon.
There is a set of packages that is trying to solve just that.
https://github.com/Altruja/workday which makes use of https://github.com/Mayflower/libholiday
from carbon.
Good luck with that, incredibly complicated to do something like that! BTW, christmas in Germany is always the 24th of December, not the 25th.
from carbon.
I rather this be done in a sub class than adding macro functionality. If it then becomes flushed out and useful for others (and a common issue) then we can look at pulling it in.
from carbon.
I created a PR which adds Carbon extensions that check to see if a given date is a business day. Custom holiday and business schedules can be provided which allow you to properly determine what the date is for next or previous number of business days.
from carbon.
Will appear in the documentation:
gh-pages...kylekatarnls:gh-pages-1.26
from carbon.
Related Issues (20)
- diffForHumans() gives incorrect wording for SLOVAK language HOT 1
- Type error when calling canBeCreatedFromFormat with null date HOT 3
- diffInDays returns a float HOT 7
- Not working after download zip file HOT 1
- Serialization of 'Closure' is not allowed HOT 2
- Invalid CarbonInterval->format() results for Carbon 3 (unknown). HOT 8
- It is not possibble to upgrade Symfony 6.4 to 7.0 without upgrading Carbon from 2 to 3 HOT 1
- Carbon::now after Carbon::setTestNow gives incorrect results HOT 1
- Please don't modify existing instances with date arithmetic methods HOT 1
- Unknown or bad timezone (:/etc/localtime) HOT 2
- Carbon::createFromFormat Incorrect Month Output for February HOT 1
- Error parsing date HOT 1
- Unserialize from Carbon v2 objects HOT 1
- Carbon createFromTimestampMs no default time zone if it is set in env variable of Laravel app HOT 1
- `CarbonInterval`'s `days` property return false HOT 2
- [Translation tool] sr_RS@latin
- Date difference problem HOT 5
- isSameDay: Too few arguments HOT 1
- Singular methods without parameters also work with parameters. It should not be as per the documentation. HOT 1
- Inconsistent Date Calculation When Adding Months Across February HOT 5
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 carbon.