Modified Date Display and Scheduled Content with PHP
Website Automation with PHP and MySQL, Part 14
Low End Mac Reader Specials
Memory To Go Special: MacPro 8 Core Memory 4GB kit $192 / 2GB kit $109. MacBook Pro / MacMini / iMac Intel Core2 DUO 2GB $44 1GB $23--Free shipping available.
Download Typestyler, still the Ultimate Styling Tool for Internet, Print and Video Graphics. Works great in Classic with a Native OS X Version on the way. Free Tryout: www.typestyler.com
LA Computer Company: LA Computer Company: Specials on AppleCare, Apple Displays, MacBooks, iMac's, MacBook Pros, Laptop and iPod accessories and more. Apple A/C Adapters for laptops starting at $25.00 Call 1-800-941-7654 or Click Here.
OtherWorld Computing: Better than new Batteries for iPods NewerTech NuPower, up to 20+ Hours! Complete with Tools from $19.99. Online videos. Professional installation available.
Mac users can finally play Party Poker for Mac. Not only that, they can also learn how to play PokerStars for Mac.
Laptop Hardware Provided by TechRestore - Overnight Mac & iPod Repairs.
Compare products like desktop computers, laptops, and LCD TVs side by side! All the information and reviews to make the best purchasing decision for a new cell phone GPS products or MP3 players. The Ciao network makes searching products easy for you.
Memory For New Intel Core2 DUO MacBooks, MacBook Pro, MacMini & iMacs" 4GB Kit $80, 3GB Kit $60, 2GB Kit $40, 1GB $20. Click to Maximize your Macs...
Dan Knight - 2002.07.24
The more I use PHP and MySQL, the more I realize how different
the combination is from using a fully integrated database program
like FileMaker
Pro. In FM Pro, you
can define relationships between
fields and have them automatically generated and universally
applied. With MySQL, you have to write a program to manipulate the
data.
Displaying the Date Field
But I'm learning that, and also learning equivalents to old BASIC and FileMaker commands that give me more control over presentation. For instance, MySQL delivers the results of a date field in the format yyyy-mm-dd, so a PHP script would read today's date from a MySQL database as 2002-07-24.
That's fine, but I prefer to user periods instead of hyphens (and some people prefer slashes), and I don't see any need to display the year when all the links are to new content.
In looking through our PHP books, I found the strtr function, which will replace one string with another throughout a field. In this case, I could use strtr to find every hyphen in the date field and replace it with a period. Now today's date would display as 2002.07.24.
That got me halfway there. Now I needed to find an equivalent of the rightstr command so I could extract just the five rightmost characters from the date string. The closest PHP equivalent is the substr command, which can work from either end of a string. substr(string, nn) will keep the first nn characters of a string - but if nn is a negative number, it instead retains the last nn characters.
Here's the code I used to take the MySQL date field, strip it to the last five characters, and replace any hyphen with a period:
$shortdate = $array[pubdate]; $shortdate = substr ($shortdate, -5); $shortdate = strtr ($shortdate, '-', '.'); echo "$shortdate. ";
Which replaces echo "$array[pubdate] "; in my earlier coding.
And I think this looks much nicer.
Scheduled Content
Sometimes writers get material to me days or even weeks in advance. This gives me plenty of time to edit their articles, schedule their release date, and have them almost ready to go on their scheduled publication date. Almost.
That is, everything is ready to go except that I haven't been able to assign a record number until the day an article goes up. But by fiddling around a bit more with PHP, I can now schedule articles days or weeks in advance, assign an ID, add the article to the database, but not have it displayed until the scheduled date and time.
The first part of the process means modifying this line of code:
$latestdate = mysql_fetch_array(mysql_query("SELECT * FROM links ORDER BY timestamp DESC LIMIT 1"));
by adding one thing - ignoring timestamps later than the current time.
First we define the current time:
$rightnow = date(U);
and then we find the latest article earlier than that:
$latestdate = mysql_fetch_array(mysql_query("SELECT * FROM links WHERE timestamp <= $rightnow ORDER BY timestamp DESC LIMIT 1"));
We need to make just one more change: Don't display today's articles with timestamps later than the present:
$get_links = mysql_query("SELECT * FROM links WHERE pubdate = '$latestdate[pubdate]' and timestamp <= $rightnow ORDER BY rank DESC");
Our display script will now determine today's date and the current time, and it won't display links to articles scheduled any later than the present moment.
That's half the battle. Now I need to create a way that lets me schedule the articles by date and time, convert that to a Unix timestamp, and use that in our database instead of the current time that a record is added.
Here's the code I used to test input. Feel free to modify it as you see fit:
- <?php
- $unix_stamp = date(U);
- $cur_year = date(Y);
- $cur_month = date(m);
- $cur_day = date(d);
- $timezone = date(T);
- $now = date(H) . ":" . date(i);
- echo "<form action=$PHP_SELF method=post><input type=hidden name=process value=true><p>
- Publication Date (yyyy.mm.dd): <input type=text name=pubdate size=12 maxlength=10 value=\"$cur_year-$cur_month-$cur_day\"><br>
- Publication Time (no change for now): <input type=text name=pubtime size=6 maxlength=5 value=\"$now\"> $timezone<br>
- <input type=submit name=submit value=submit></p></form>";
- $stamp = $pubdate . " " . $pubtime . ":00";
- $stamp = strtotime ($stamp);
- if ($stamp >= $unix_stamp)
- {$unix_stamp = $stamp ;}
- ?>
We begin by recording the current time as $unix_stamp, then create year, month, day, minute, hour, and timezone data from the timestamp. The year, month, and date are displayed as Publication Date, and the current time is displayed as Publication Time.
If I make no change to this information, my script uses $unix_stamp as the records time of publication, but if I change the date or time of day, it will use the new information unless I set it to earlier than the timestamp. If I do that, it will use the current time.
The strtotime function converts our yyyy-mm-dd and hh:mm data to a Unix timestamp, which is seconds since the epoch (1970.01.01).
With these modifications, I can schedule the next Lite Side article days or weeks in advance. Of course, then there's the whole different issue of Jeff Adkins coming up with something more timely between then and now....
The first article to use the new system is this one, which I
wrote on Tuesday morning just before leaving for work at the camera
store.
Recent Online Tech Journal Columns
- Apple's AAUI ethernet connector, 09.04. From 1991 through 1995, Apple used a proprietary ethernet connection. Why they created AAUI and where to find adapters.
- PowerPC G5: Apple's last fling with PowerPC architecture, 05.24. Teaming up with IBM, Apple adopted the PowerPC G5 in 2003 - and phased out the last G5 Power Mac three years later.
- The PowerPC G4: From 350 MHz to 2.0 GHz, 05.24. AltiVec and dual processor support made the G4 a big improvement over the earlier G3 processor.
- More in the Online Tech Journal index.
Recent Content on Low End Mac
- Apple's eMate still a great tool in the classroom, Tommy Thomas, Welcome to Macintosh, 05.09. How one teacher equipped his classroom with eMates with his own money - and plans to keep using them as long as possible.
- $199 iPhone coming?, iPod not a Walkman, crosswalk danger, iPods taking over cars, and more, iNews Review, 05.09. Also the iPhone is a second-rate phone, iPhone 2.0 may introduce handwriting recognition, Kensington battery pack and chargers, new iPhone apps, and more.
- Best Power Mac G4 deals, Low End Mac Deals, 05.09. Used Cube, $479; 400 MHz PCI, $70; 450 AGP, $105; 733 DA, $150; 867 QS, $200; 1 GHz, $250; 450 dual, $295; 1 GHz dual, $400; 1.42, $600; more.
- Best 15" MacBook Pro deals, Low End Mac Deals, 05.09. Used 1.83 GHz Core Duo, $1,100; 2.16, $1,295; refurb, 2.2 Core2, $1,449; 2.4 Penryn, $1,699; 2.5, $2,149; new 2.2, $1,525 after rebate; 2.4, $1,685 a/r; more.
- MacBook sales explode, MacBook Air reviews, several new hard drives, and more, The 'Book Review, 05.09. Also silver-zinc batteries may outlast lithium-ion, Bell Aliant bundling MacBook with Internet access, notebook drives benchmarked, bargain 'Books from $150 to $2,699, and more.
- Best iPod touch deals, Low End Mac Deals, 05.09. Refurb 8 GB '08, $249; 16 GB '07, $329; '08, $349; new 8 GB '07. $269; '08, $280; 16 GB '07, $330; '08, $369; 32 GB, $475.
- More G4 upgrade advice, secure disk wipes, 500 MHz iMacs with Tiger in action, and more, Dan Knight, Low End Mac Mailbag, 05.09. The importance of securely clearing your hard drive before you pass on your Mac, Pismo and closed lid mode, G3 iMacs in the classroom, and more thoughts on upgrading G4 Power Macs.
- Apple tops in tech support, Penryn iMacs and Psystar Open Computer reviewed, and more, Mac News Review, 05.09. Also the iMac philosophy, OpenOffice 3.0 going Mac, MozyHome backup comes to Macs, weather in the Dock, and more.
- 140 million copies of Vista sold (yawn), Frank Fox, Stop the Noiz, 05.09. It sounds like a lot, but over 85% of Windows users are staying away from Vista. 20% of Mac users have embraced Leopard in one-third the time.
- Mac of the Day: Macintosh LC, Oct. 1990 - only 3" tall, the LC was the least expensive color Mac in 1990.
- List of the Day: Jaguar List is for anyone using Mac OS X 10.2.x.
- May 12 in LEM history: 99: Is Apple missing the boat? - 00: PowerBook history - Frankenstein Power Mac - 03: Beige Power Mac G3 - Is a 5400 worth buying? - Upgrades for the tray-loading iMac - Quiet computing - 04: Windows stability: Nothing changes - Broadband Internet access: Picking the right speed - 06: The future of PowerPC Macs in the Intel era - Setting up a 68040-based Mac media center - Mac mini Core Duo upgrades
- Why one Mac user chose BlackBerry over iPhone, Andrew J Fishkin, Best Tools for the Job, 05.08. The advantages of OS X, Safari, Mail, and iSync don't outweigh the familiarity of BlackBerry, its excellent software, easily replaceable batteries, and a camera-free option.
- 500 MHz iMac with Panther great for Internet, watching video, and more, Carl Nygren, My Turn, 05.08. At $65 with upgraded RAM and a bigger hard drive, it was too good to pass up, and it works very nicely with Mac OS X 10.3.
- Boomerang: The Blue and White Power Mac G3 that kept coming back, Charles Webb, The Webb Chronicles, 05.08. Over its nine-year lifespan, this Power Mac had at least five owners before it finally gave up the ghost.
- Best Intel iMac deals, Low End Mac Deals, 05.08. Used 17" 1.83 GHz, $699; 20" 2.16 Core2, $885; refurb 20" 2.16, $949; 2.4, $1,099; 24" 2.16, $1,199; 2.4, $1,399; 2.8, $1,599; Penryn from $1,049 after rebate.
- Best 17" PowerBook G4 deals, Low End Mac Deals, 05.08. Used 17" 1 GHz, $790; 1.33 GHz, $850; 1.5 GHz, $859; 1.67 GHz, $889.
- Best Mac OS X 10.5 'Leopard' deals, Low End Mac Deals, 05.08. Mac OS X 10.5.1 single user, $99; 5 users, $139; 10.5 Server, 10 users, $450; unlimited, $899.
- More links in our archive.
Go to the Online Tech Journal index.
About LEM | Support | Usage | Privacy | Contacts



