Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #15737
| From | Jerry Stuckle <jstucklex@attglobal.net> |
|---|---|
| Newsgroups | comp.lang.php |
| Subject | Re: Check for military time |
| Date | 2015-10-22 12:19 -0400 |
| Organization | A noiseless patient Spider |
| Message-ID | <n0b269$69m$1@dont-email.me> (permalink) |
| 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> |
On 10/22/2015 10:43 AM, Lew Pitcher 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?
>
> 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?
>
I read and understood the purpose of your code. Then I wrote my own
code and ran it under PHP 5.6.13 (64 bit). It came out with 1500
successes and 1100 failures, as expected.
The problem was I don't have access to Usenet from that machine, so I
ran the code on a Windows machine which is currently running PHP 5.4.14
(again, 64 bit) where if failed. The problem is I didn't as much
attention to the output that I should have.
So it looks like a bug which has been fixed in PHP 5.6.13 (at least on
Linux).
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex@attglobal.net
==================
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