Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #15733
| From | Lew Pitcher <lew.pitcher@digitalfreehold.ca> |
|---|---|
| Subject | Re: Check for military time |
| Newsgroups | comp.lang.php |
| References | (1 earlier) <d8nha3Fgdr2U2@mid.individual.net> <kf5e2blfd3545p492dnnii47an4jkmu62e@4ax.com> <%kSVx.210845$HZ6.47102@fx12.iad> <n09i2i$f8i$1@dont-email.me> <PC6Wx.93819$9Q4.38733@fx01.iad> |
| Organization | The Pitcher Digital Freehold |
| Message-ID | <EG6Wx.59598$gO.28272@fx19.iad> (permalink) |
| Date | 2015-10-22 10:48 -0400 |
On Thursday October 22 2015 10:43, in comp.lang.php, "Lew Pitcher"
<lew.pitcher@digitalfreehold.ca> wrote:
> On Wednesday October 21 2015 22:38, in comp.lang.php, "Jerry Stuckle"
> <jstucklex@attglobal.net> wrote:
>
>> On 10/21/2015 4:12 PM, Lew Pitcher wrote:
>>> On Wednesday October 21 2015 00:35, in comp.lang.php, "Richard Yates"
>>> <richard@yatesguitar.com> wrote:
>>>
>>>> On 20 Oct 2015 19:00:19 GMT, Derek Turner <frderek@suremail.je> wrote:
>>>>
>>>>> On Tue, 20 Oct 2015 18:57:34 +0000, Derek Turner wrote:
>>>>>
>>>>>> Is there a quick and dirty way to check that
>>>>>>
>>>>>> substr($string, 0 ,3) is a valid military time, ie. 0000-2359?
>>>>>>
>>>>>> tia
>>>>>>
>>>>>> Derek
>>>>>
>>>>> sorry, that should, of course, read ($string, 0, 4)
>>>>
>>>> This seems to work, but I did not test all cases:
>>>>
>>>> echo (strtotime($time)) ? 'Pass' : 'Fail';
>>>
>>> PHP Version 5.4.45
>>>
>>> I tried all integer test cases between 0000 and 2599, and found that this
>>> test seems to fail on the range "1960" to "1999". On the off chance that
>>> the strtotime() call interpreted its argument as a date, I modified the
>>> argument to explicitly indicate military time (by prefixing it with a
>>> 't'). Still, the same 40 errors occurred, where "t1960" through "t1999"
>>> resulted in strtotime() returning an integer instead of FALSE.
>>>
>>> Here's the test code
>>> <html>
>>> <head><title>Test time</title></head>
>>> <body>
>>> <ul>
>>> <?php
>>> $success = 0;
>>> $failed = 0;
>>>
>>> for ($ts = 0; $ts < 2600; ++$ts)
>>> {
>>> $time = sprintf("t%04.4u",$ts);
>>> $expect = ((floor($ts/100) <= 24) && ($ts % 100 < 60)) ? 'Pass' :
>>> 'Fail';
>>> $result = (strtotime($time)) ? 'Pass' : 'Fail';
>>> $matched = ($expect == $result) ? 'Success' : 'Failed';
>>> printf("<li>%s - %s: expected %s, got %s</li>\n",
>>> $time,$matched,$expect,$result);
>>> if ($matched == 'Success')
>>> ++$success;
>>> else
>>> ++$failed;
>>> }
>>> ?>
>>> </ul>
>>> <?php
>>> printf("%u Successful cases, %u failures\n",$success,$failed);
>>> ?>
>>> </body>
>>> </html>
>>>
>>>
>>
>> Your logic is fallacious.
>
> I disagree. You will have to prove your statement.
>
>> The following code works and displays invalid
>> times:
>>
>> <?php
>> $success = 0;
>> $failed = 0;
>>
>> for ($ts = 0; $ts < 2600; ++$ts)
>> {
>> $time = sprintf("%04.4u",$ts);
>> $result = (strtotime($time));
>> if ($result)
>> ++$success;
>> else {
>> ++$failed;
>> printf("%s failed\n", $time);
>>
>> }
>> }
>> printf("%u Successful cases, %u failures\n",$success,$failed);
>> ?>
>
> Results in
> 1540 Successful cases, 1060 failures
>
> But, in the military clock, there are 25 hours (00 through 24) and 60
> minutes per hour (00 through 59). Thus, in 2600 test cases, ranging
> sequentially from 0000 through 2599, there should be 25x60 successes 25
> hours, with 60 values inside of the 00-59 range). That means 1500 successes
> in 2600 test cases.
>
> But, your logic came up with 1540 successes. Apparently, your code got
> 40 "wrong" timestamps wrong. Now, Jerry, *which* 40 were wrong?
I cleaned up your code's output and noticed
1896 failed
1897 failed
1898 failed
1899 failed
2060 failed
2061 failed
2062 failed
2063 failed
2064 failed
2065 failed
Hmmmm..... what happened to 1960 through 1999? Your code seems to think that
these are valid timestamps, as it *DID NOT* mark them as failures (and
counted them in the "$success" count.
> FWIW, my code reported that, in the same 2600 test cases, 2560 test cases
> resulted in the expected results (strtotime() reporting a valid value for
> valid time, or reporting false for an invalid time), and 40 anomalous
> results (strtotime() gave a valid value for an invalid time, or returned
> false for a valid time).
>
> Perhaps you didn't read or understand the purpose of my code?
>
--
Lew Pitcher
"In Skills, We Trust"
PGP public key available upon request
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Check for military time Derek Turner <frderek@suremail.je> - 2015-10-20 18:57 +0000
Re: Check for military time Derek Turner <frderek@suremail.je> - 2015-10-20 19:00 +0000
Re: Check for military time Richard Yates <richard@yatesguitar.com> - 2015-10-20 21:35 -0700
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-21 16:12 -0400
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-21 22:38 -0400
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-22 10:43 -0400
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-22 10:48 -0400
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-22 17:20 +0200
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 12:19 -0400
Re: Check for military time "Peter H. Coffin" <hellsop@ninehells.com> - 2015-10-22 15:32 -0500
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-22 23:08 +0200
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 20:19 -0400
Re: Check for military time Matthew Carter <m@ahungry.com> - 2015-10-22 22:07 -0400
Re: Check for military time "Beauregard T. Shagnasty" <a.nony.mous@example.invalid> - 2015-10-23 02:26 +0000
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-22 17:13 -0400
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-10-22 22:57 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 20:22 -0400
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-10-23 09:19 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-23 09:32 -0400
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-10-23 15:43 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-23 11:11 -0400
Re: Check for military time gordonb.nwjln@burditt.org (Gordon Burditt) - 2015-10-23 12:36 -0500
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-23 13:40 -0400
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-10-23 18:54 +0100
Re: Check for military time Norman Peelman <npeelman@cfl.rr.com> - 2015-10-23 22:44 -0400
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-10-24 10:32 +0100
Re: Check for military time Derek Turner <frderek@suremail.je> - 2015-10-24 11:41 +0000
Re: Check for military time Norman Peelman <npeelman@cfl.rr.com> - 2015-10-24 15:15 -0400
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 20:21 -0400
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-22 20:38 -0400
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 20:47 -0400
Re: Check for military time gordonb.90ylr@burditt.org (Gordon Burditt) - 2015-10-22 18:21 -0500
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 20:23 -0400
Re: Check for military time gordonb.c5zx1@burditt.org (Gordon Burditt) - 2015-10-22 17:40 -0500
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-22 11:12 +0200
Re: Check for military time Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2015-10-22 11:06 -0400
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-22 17:18 +0200
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 13:17 -0400
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-21 13:55 +0200
Re: Check for military time "M. Strobel" <strobel@example.com> - 2015-10-21 20:56 +0200
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-21 16:48 -0400
Re: Check for military time Stephan Elinghaus <221015.6.seli@spamgourmet.com> - 2015-10-22 13:16 +0200
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-22 15:11 +0200
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-22 10:23 -0400
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-10-27 14:10 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-27 09:25 -0400
Re: Check for military time Jørn Andersen <jorn@jorna.dk> - 2015-10-27 15:19 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-27 10:41 -0400
Re: Check for military time Matthew Carter <m@ahungry.com> - 2015-10-27 23:03 -0400
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-27 23:29 -0400
Re: Check for military time Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-10-29 10:08 +0100
Re: Check for military time Matthew Carter <m@ahungry.com> - 2015-10-29 21:44 -0400
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-29 22:35 -0400
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-10-30 20:08 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-30 16:22 -0400
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 11:58 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 08:27 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 14:36 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 09:05 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 16:51 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 11:09 -0500
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-30 22:33 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-30 20:01 -0400
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-03 19:51 +0100
Re: Check for military time Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-11-02 13:51 +0100
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-02 18:57 +0100
Re: Check for military time Erwin Moller <erwinmollerusenet@xs4all.nl> - 2015-11-04 15:18 +0100
Re: Check for military time Matthew Carter <m@ahungry.com> - 2015-11-04 21:18 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-05 07:51 +0100
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-10-30 20:04 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-30 16:24 -0400
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 12:06 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 08:30 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 14:39 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 09:07 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 16:58 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 11:05 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-02 08:14 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-02 10:01 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-02 17:54 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-02 12:50 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-02 19:05 +0100
Re: Check for military time Tim Streater <timstreater@greenbee.net> - 2015-11-02 18:23 +0000
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-02 15:23 -0500
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-02 15:16 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-03 05:47 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-03 08:47 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-04 03:55 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-03 22:09 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-04 08:49 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-04 08:29 -0500
Re: Check for military time Paul Herber <paul@pherber.com> - 2015-11-04 14:14 +0000
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-04 10:00 -0500
Re: Check for military time Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-11-06 13:11 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-06 09:45 -0500
Re: Check for military time Matthew Carter <m@ahungry.com> - 2015-11-07 21:50 -0500
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-07 22:05 -0500
Re: Check for military time gordonb.2zzss@burditt.org (Gordon Burditt) - 2015-11-08 20:50 -0600
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-09 10:29 +0100
Re: Check for military time gordonb.00syf@burditt.org (Gordon Burditt) - 2015-11-10 23:42 -0600
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 07:46 +0100
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 07:50 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 08:06 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 15:15 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 09:21 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 17:46 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 15:12 -0500
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 22:23 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 17:17 -0500
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 08:05 -0500
OT: Munging addresses (was: Re: Check for military time) Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 19:18 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 15:16 -0500
Re: OT: Munging addresses Arno Welzel <usenet@arnowelzel.de> - 2015-11-11 22:29 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-11 17:20 -0500
Re: OT: Munging addresses Arno Welzel <usenet@arnowelzel.de> - 2015-11-12 07:47 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-12 10:15 -0500
Re: OT: Munging addresses Arno Welzel <usenet@arnowelzel.de> - 2015-11-12 17:17 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-12 11:59 -0500
Re: OT: Munging addresses Arno Welzel <usenet@arnowelzel.de> - 2015-11-12 18:51 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-12 14:20 -0500
Re: OT: Munging addresses Arno Welzel <usenet@arnowelzel.de> - 2015-11-12 20:59 +0100
Re: OT: Munging addresses Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-12 16:54 -0500
Re: OT: Munging addresses Jim Higgins <ILikeMy@Privacy.invalid> - 2015-11-18 16:24 +0000
PHP code section end marker (was: Check for military time) Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-10-27 22:58 +0100
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-10-30 20:01 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-10-30 16:27 -0400
Re: Check for military time Arno Welzel <usenet@arnowelzel.de> - 2015-11-01 12:12 +0100
Re: Check for military time Jerry Stuckle <jstucklex@attglobal.net> - 2015-11-01 08:31 -0500
csiph-web