Monday, November 08, 2010 at 12:07 AM.
system.verbs.globals.date
on date (val, flErrorOnInvalidDate=false) {
<<Changes:
<<09/16/04; 12:56:38 PM by JES
<<Ignore the value of flErrorOnInvalidDate. It's better to get an error if the date format is not valid.
<<05/28/03; 2:40:16 PM by JES
<<New optional parameter, flErrorOnInvalidDate. If true, an invalid date value will cause an error. Default is false, preserving existing behavior.
<<03/26/01; 12:12:02 PM by PBS
<<If the kernel can't coerce the value to a date, this may be an international system and the value may be a string in GMT, the output of date.netStandardString. In that case, try to turn that string into a date.
on kernelcall (val) {
kernel (lang.date)};
try {
kernelcall (val)}
else {
local (kernelError = tryError); //save the error string reported by the kernel
try {
val = string (val);
if val endsWith "GMT" { //output of date.netStandardString
local (day, month, year, hour, minute, second);
day = string.nthField (val, ' ', 2);
local (monthString = string.nthField (val, ' ', 3));
case string.lower (monthString) {
"jan" {
month = 1};
"feb" {
month = 2};
"mar" {
month = 3};
"apr" {
month = 4};
"may" {
month = 5};
"jun" {
month = 6};
"jul" {
month = 7};
"aug" {
month = 8};
"sep" {
month = 9};
"oct" {
month = 10};
"nov" {
month = 11};
"dec" {
month = 12}};
year = string.nthField (val, ' ', 4);
local (timeString = string.nthField (val, ' ', 5));
hour = string.nthField (timeString, ':', 1);
minute = string.nthField (timeString, ':', 2);
second = string.nthField (timeString, ':',3);
local (theDate = date.set (day, month, year, hour, minute, second));
theDate = theDate + date.getCurrentTimeZone (); //adjust for time zone
return (theDate)}
else { //JES 5/28/03: re-throw the error
<<if flErrorOnInvalidDate //JES 9/16/04: ignore parameter. it's better to get the error
scriptError (kernelError)}}
else {
scriptError (kernelError)}}}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.