SimpleCalendar
SimpleCalendar is a very simple PHP calendar class written to be easy to use and flexible.
It includes basic event logic and is made to be modified to your particular needs.
Sample Usage
<?php
require_once('SimpleCalendar.php');
$calendar = new donatj\SimpleCalendar();
$calendar->setStartOfWeek('Sunday');
$calendar->addDailyHtml( 'Sample Event', 'today', 'tomorrow' );
$calendar->show(true);
Example Calendar
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
Sample Event | Sample Event |
Click here for the Github repository.
Recent Activity
GitHub (web-flow)
Bump actions/checkout from 6 to 7 (#39)Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '7'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Merge pull request #37 from donatj/php-cs-fixer-dry-run
Run php-cs-fixer in dry-run mode in CI
Run php-cs-fixer in dry-run mode in CI
Run php-cs-fixer in dry-run mode in CI
Update PHPUnit version constraint in composer.json
Jesse Donat (donatj)
Rebuild READMEGitHub (web-flow)
Merge pull request #32 from donatj/donatj-patch-2Add PHP version 8.5 to CI workflow
Add PHP version 8.5 to CI workflow
Bump actions/checkout from 5 to 6 (#31)
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bump actions/checkout from 4 to 5 (#30)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Merge pull request #29 from donatj/donatj-patch-2
Test in PHP 8.4
Test in PHP 8.4
Test in PHP 8.4
Merge pull request #26 from donatj/php-version/8-3--users-jdonat-projects-donatj-simplecalendar--github-workflows-ci-yml
Update PHP to 8.3
Update PHP to 8.3
Jesse Donat (donatj)
Update PHP to 8.3Replace travis badge with GitHub Actions
Jesse Donat (donatj)
Use MakefileAdds helpful Makefile
Update autoloader syntax
Use correctly compatible versions
Updates README
Minor fixup
Drop pre-7.2’s
Run fixer
Add phpcs and php-cs-fixer
Fixup
Add phpstan.neon
Cleans up composer.json some
Correct backwards annotation
Remove unnecessary if
Min PHP 7.2
| Build | Date | Message |
|---|---|---|
| v0.6.0 Download | Simplified shrimp2ts work | |
| v0.6.1 Download | gitignore updates | |
| v0.6.2 Download | Merge branch 'keesiemeijer-master' | |
| v0.7.0 Download | Updates docs | |
| v0.8.0 Download | Replace travis badge with GitHub Actions |
Comment by: Greg Duckworth on
👁 Greg Duckworth's Gravatar
This is a fantastic little script, although I don't suppose you could add the ability to move forward and back in months ?
This is a fantastic little script, although I don't suppose you could add the ability to move forward and back in months ?
Comment by: Jesse G. Donat on
👁 Jesse G. Donat's Gravatar
The constructor on Simple Calendar takes a date string (see strtotime()) so an easy way is simply
$cal = new SimpleCalendar('+1 Month');
or
$cal = new SimpleCalendar('June 2012');
There is also a setDate method which allows you to change the date of the calendar after initial construction.
Comment by: HvToor on
👁 HvToor's Gravatar
It looks great but when I download v0.3.2 and upload it to my website it won't work. I already changed the paths of the files to the right folder.
Hope you can help with it,
It looks great but when I download v0.3.2 and upload it to my website it won't work. I already changed the paths of the files to the right folder.
Hope you can help with it,
Comment by: Jesse G. Donat on
👁 Jesse G. Donat's Gravatar
Starting with .3.0 it is namespaced and requires PHP 5.3+, I'm sorry I did not update the documentation until just now. The example in the source code better illustrates this.
Starting with .3.0 it is namespaced and requires PHP 5.3+, I'm sorry I did not update the documentation until just now. The example in the source code better illustrates this.
Comment by: Dirk on
👁 Dirk's Gravatar
As somebody already asked: Is there a simple way to make weeks start on mondays?
Thx in advance
As somebody already asked: Is there a simple way to make weeks start on mondays?
Thx in advance
Comment by: Alberto on
👁 Alberto's Gravatar
i keep getting the following notice Undefined offset: 1 to 31
"Notice: Undefined offset: 1 in SimpleCalendar.php on line 150"
i keep getting the following notice Undefined offset: 1 to 31
"Notice: Undefined offset: 1 in SimpleCalendar.php on line 150"
Comment by: murali on
👁 murali's Gravatar
I used this calendar script in my website. I need to have the extended dates of next month and previous month in the current month. Please help me to do it in this calendar script. I would appreciate any help on this.
Thanks.
I used this calendar script in my website. I need to have the extended dates of next month and previous month in the current month. Please help me to do it in this calendar script. I would appreciate any help on this.
Thanks.
Comment by: Guilherme on
👁 Guilherme's Gravatar
NICE !!! VERY NICE CLASS !
To change the header,
Sun Mon Tue Wed Thu Fri Sat
To other languages ? what should i do ?
Thanks
Guilherme
NICE !!! VERY NICE CLASS !
To change the header,
Sun Mon Tue Wed Thu Fri Sat
To other languages ? what should i do ?
Thanks
Guilherme
Comment by: Brad Haizlett on
👁 Brad Haizlett's Gravatar
Is there any way to enable previous and next month functionality on it? That would be awesome if you had that, or at least a way to have that working.
Is there any way to enable previous and next month functionality on it? That would be awesome if you had that, or at least a way to have that working.
Comment by: Jesse G. Donat on
👁 Jesse G. Donat's Gravatar
Do you mean just rendering the next/previous month? That's as simple as:
Do you mean just rendering the next/previous month? That's as simple as:
$calendar = new donatj\SimpleCalendar();
$calendar->show(true);
$calendar->setDate('last month');
$calendar->show(true);
$calendar->setDate('next month');
$calendar->show(true);
If you mean button's for next/previous month, thats outside the scope. This is just a little widget to render a calendar. You can write JavaScript or PHP to do it yourself though without too much trouble.
Comment by: Peter on
👁 Peter's Gravatar
Good class! Thank you.
One question, regarding this line:
$out .= "\n" . ($i != $count ? '' : '');
Why did you check ($i != $count?)
In this way, one TR - start is missed.
Br,
Peter
Good class! Thank you.
One question, regarding this line:
$out .= "\n" . ($i != $count ? '' : '');
Why did you check ($i != $count?)
In this way, one TR - start is missed.
Br,
Peter
Comment by: Anthony on
👁 Anthony's Gravatar
Concerning buttons for next/previous months. I understand you said its outside the scope but it would be really helpful if you could help out with it as its a bit cumbersome when trying to figure out the correct code to do it.
If you have update please put it out there.
Concerning buttons for next/previous months. I understand you said its outside the scope but it would be really helpful if you could help out with it as its a bit cumbersome when trying to figure out the correct code to do it.
If you have update please put it out there.
Comment by: kalle on
👁 kalle's Gravatar
I also get this error when downloaded the latest version.
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\calendar\donatj\SimpleCalendar.php on line 3
I also get this error when downloaded the latest version.
Parse error: syntax error, unexpected T_STRING in C:\wamp\www\calendar\donatj\SimpleCalendar.php on line 3
Comment by: Greg on
👁 Greg's Gravatar
Any way to make it so you can click on a day and have it call a function to set an event for that day?
Any way to make it so you can click on a day and have it call a function to set an event for that day?
Comment by: Chris Yates on
👁 Chris Yates's Gravatar
Cracking little calendar nice & simple ...
I've incorporated this in a pretty complex ERP system and it works great and is easy to expand on
Cracking little calendar nice & simple ...
I've incorporated this in a pretty complex ERP system and it works great and is easy to expand on
Comment by: Jose Vivas on
👁 Jose Vivas's Gravatar
Can you fill in the blanks with the dates of the previous month and the following month?
Can you fill in the blanks with the dates of the previous month and the following month?
Comment by: Mesk on
👁 Mesk's Gravatar
Hi, nice work.
How can I make the rendering of events that are date ranges, not individual events, appear as a single event spanning from the first to the last day?
Hi, nice work.
How can I make the rendering of events that are date ranges, not individual events, appear as a single event spanning from the first to the last day?
Comment by: Jesse G. Donat on
👁 Jesse G. Donat's Gravatar
I'm sorry but that's not a feature of the calendar library.
It would require more a more complicated combination of HTML and CSS than this is designed to generate.
This outputs a reasonably simple table structure. Having events visually span multiple days would probably double if not triple the complexity of the library.
I'm sure there are other libraries that would better suit your needs.
I'm sorry but that's not a feature of the calendar library.
It would require more a more complicated combination of HTML and CSS than this is designed to generate.
This outputs a reasonably simple table structure. Having events visually span multiple days would probably double if not triple the complexity of the library.
I'm sure there are other libraries that would better suit your needs.
Comment by: Hernan on
👁 Hernan's Gravatar
Would be great to have a switch to be able to complete weeks at the start or end of month with days of previous and next months.
Thanks for your work!
Would be great to have a switch to be able to complete weeks at the start or end of month with days of previous and next months.
Thanks for your work!
