472,805 Members | 1,062 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,805 software developers and data experts.

Sample month at a time code for events calendar

I am in the process of rewriting one of my first PHP scripts, an event
calendar, and wanted to share the code that is the core of the new
calendar. My current/previous calendar processed data dates only, this
code is intended to use more thrifty event descriptions (3rd saturday,
last tuesday, etc.) as well as traditional one-of dates.

The core here here is quite spartan, no table logic or or db cruft
included (I figure you have our own design ideas/preferences.)


//sample code to generate american calendar format for a given month
// i,e. start of sunday on or before the 1st end on te saturday on or
after the last day.
// makes use of mktime's cool liberal calculation of dates.

// Set sample month and year values:
$mn = date("m");
$yr = date("Y");

// Start calendar logic:

$firstday = date("w",mktime(0,0,0,$mn,1,$yr)); // Get first day of
target month (0=sum 6=set)

$numdays = date("t",mktime(0,0,0,$mn,1,$yr)); // Number of days in
target month

$daystop = $numdays+(6-date("w",mktime(0,0,0,$mn+1,0,$yr))); //
Adjusted last saturday of calendar page (on or after last day of month

//start with american first sunday on or before start of month of
calendar page and end on daystop (saturday)
for($daynum = 1 - $firstday; $daynum <= $daystop; $daynum++) {

//need working date timestamp to work out details of the calendar
$wkdate = mktime(0,0,0,$mn,$daynum,$yr); //the first of the month -
unix value

$wdy = date("w",$wkdate); //day of the week (0 sun - 6 sat)
$wmn = date("m",$wkdate); //month
$wdt = date("d",$wkdate); //date

$wdte = date("D, m/d/Y",$wkdate); //date string of current date "Day,

$ndays = date("t",$wkdate); //# days in working month
$wknum = intval(($wdt-1) / 7)+1; //week number in month

$lastweek = ($wdt $ndays-7 ? true : false); //last week of month

$curmonth = ($wmn == $mn ? true : false); //current month (for

// display example of what we know:
echo (($wdy % 6)==0 ? "*": ""). //indicate if date is a weekend date
"Date: ".$wdte. //day of week and date
", Week: ".$wknum. //indicate if it is the last week of the month
($lastweek==true? " (last)" : "")."<br />";
if ($wdy == 6) { // divide between american weeks sun-sat (new
echo "<hr />";

Dec 17 '06 #1
0 1839

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

by: pb648174 | last post by:
Greeting, below is the complete SQL taken from aspfaq.com (retrieved from this newsgroup I believe) The query takes about two minutes to run. Does anybody have a better set based way (sub-second...
by: bb | last post by:
any way to prevent displaying the previous and next months in the calendar control? i have tried just blanking the text out in the dayrender IsOtherMonth and also dynamically changing the...
by: prosoft | last post by:
When I use Dim myDTFI As DateTimeFormatInfo = New CultureInfo("he-IL", True).DateTimeFormat Dim strhmon1 As String = (myDTFI.GetMonthName(hmon1)) MsgBox(strhmon1) I get the local name of the...
by: Jason Chan | last post by:
How can I get the month and year a calendar control current displaying? My problem is I want to load a list of event to a calendar so that it display difference style if there a event for a day....
by: tolcis | last post by:
Hi! I have a query that has to return bunch of data based on the calendar month. I have to make sure that it will return data to me for 28 days if it is February and for 31 if it is August(for...
by: Zeba | last post by:
Hi, I have a page with a calendar and two datalist items - one containing month values and the other, year values. Depending on the month/year value chosen ( in text/string format ) I should be...
by: ajaydesai | last post by:
I have JavaScript code to dispaly two month calendar days at a time, but i have a problem both month that disaplay at a time have same days (for example May and June has same days, June and July have...
by: Randy | last post by:
I have a MonthCalendar on one of my forms. I have disovered that the DateChanged event is triggered not only when the user clicks on a new date, but also if they click on the Previous or Next...
by: Droopy | last post by:
Hi, Iam using a MonthCalendar.I have hosted this in a popup control.On click of an image,i get my month calendar(i.e. the popup) displayed.Once i choose the date ,the selected date gets populated...
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 2 August 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
by: kcodez | last post by:
As a H5 game development enthusiast, I recently wrote a very interesting little game - Toy Claw ((http://claw.kjeek.com/))。Here I will summarize and share the development experience here, and hope it...
by: Taofi | last post by:
I try to insert a new record but the error message says the number of query names and destination fields are not the same This are my field names ID, Budgeted, Actual, Status and Differences ...
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
by: Mushico | last post by:
How to calculate date of retirement from date of birth

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.