php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #65694 error calendar in year 2016, with function mktime()
Submitted: 2013-09-18 10:22 UTC Modified: 2013-09-18 10:56 UTC
From: philippe dot alcaina at hotmail dot fr Assigned:
Status: Not a bug Package: Date/time related
PHP Version: 5.5.3 OS: windows linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: philippe dot alcaina at hotmail dot fr
New email:
PHP Version: OS:

 

 [2013-09-18 10:22 UTC] philippe dot alcaina at hotmail dot fr
Description:
------------
I'm a french developer computer.

For an internet tool I need to get a list of weeks after having selected one year and one month.

By testing I found a BUG in the year 2016.

PHP gives me:
1 January 2016 the number of week: 53 (instead of 1)
January 31, 2016 the number of week: 4 (instead of 5)

then the error shifts in other months.

The system works correctly in 2013, 2014, 2015.




Test script:
---------------
I provide you sample of the code that allows me to build this list of weeks, I particularly use mktime ()


// timestamp of first day of month
$time = mktime(0,0,0,$mois_select,1,$annee_select);
// number of days of month
$nbrJoursMois = intval(date('t',$time));
// the number of the first week
$numSemaineDebutMois = intval(date('W', $time));
// timestamp of end month
$timeFinMois = mktime(0,0,0,$mois_select,$nbrJoursMois,$annee_select);
// the number of the last week
$numSemaineFinMois = intval(date('W', $timeFinMois));

/**** Display results ****/

$annee_select = 2016
$mois_select = 1
$time = 1451602800
$nbrJoursMois = 31
$numSemaineDebutMois = 53  (Error)
$timeFinMois = 1454194800
$numSemaineFinMoisnum = 4   (Error)






Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-09-18 10:56 UTC] derick@php.net
-Status: Open +Status: Not a bug
 [2013-09-18 10:56 UTC] derick@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

This seems to work just fine. PHP uses the ISO8601 calendar which indeed has a week "2015-53" for the period Mon Dec 28, 2015 to Sun Jan 3, 2016. Please see http://en.wikipedia.org/wiki/ISO_week_date for more information.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Sun Feb 16 14:01:31 2025 UTC