By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
437,890 Members | 1,048 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 437,890 IT Pros & Developers. It's quick & easy.

Date('W') vs strftime('%W')

P: n/a
I have stumbled across what I think seems to be a weird situation, and
was hoping that maybe someone out there could point me in the
direction as to why it is occuring.

$date = '2008-09-16';

//- Outputs 38
echo date('W',strtotime($date));

//- Outputs 37
echo strftime('%W',strtotime($date));

This is a bit of a headache when trying to subtotal reports that are
based on a week of the year and Smarty date_format relies on strftime
while I am using date() earlier. I am unsure as to which one is
correct as I havent counted the weeks in the year to find out.. Which
should I use?
Oct 10 '08 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Turns out that date() is correct by my diary. So I will use that but
its still puzzling me as to why strftime is incorrect on this.

On Oct 10, 10:36*am, kaydubbleu <kevwilli...@gmail.comwrote:
I have stumbled across what I think seems to be a weird situation, and
was hoping that maybe someone out there could point me in the
direction as to why it is occuring.

$date = '2008-09-16';

//- Outputs 38
echo date('W',strtotime($date));

//- Outputs 37
echo strftime('%W',strtotime($date));

This is a bit of a headache when trying to subtotal reports that are
based on a week of the year and Smarty date_format relies on strftime
while I am using date() earlier. I am unsure as to which one is
correct as I havent counted the weeks in the year to find out.. Which
should I use?
Oct 10 '08 #2

P: n/a
kaydubbleu wrote:
On Oct 10, 10:36 am, kaydubbleu <kevwilli...@gmail.comwrote:
>I have stumbled across what I think seems to be a weird situation, and
was hoping that maybe someone out there could point me in the
direction as to why it is occuring.

$date = '2008-09-16';

//- Outputs 38
echo date('W',strtotime($date));

//- Outputs 37
echo strftime('%W',strtotime($date));

This is a bit of a headache when trying to subtotal reports that are
based on a week of the year and Smarty date_format relies on strftime
while I am using date() earlier. I am unsure as to which one is
correct as I havent counted the weeks in the year to find out.. Which
should I use?
Turns out that date() is correct by my diary. So I will use that but
its still puzzling me as to why strftime is incorrect on this.
The date() function seems to count the first week from 1, while
strftime counts the first week from 0.

--
Curtis
Oct 10 '08 #3

P: n/a
kaydubbleu escribió:
$date = '2008-09-16';

//- Outputs 38
echo date('W',strtotime($date));

//- Outputs 37
echo strftime('%W',strtotime($date));

This is a bit of a headache when trying to subtotal reports that are
based on a week of the year and Smarty date_format relies on strftime
while I am using date() earlier. I am unsure as to which one is
correct as I havent counted the weeks in the year to find out.. Which
should I use?
They are different things:

W - ISO-8601 week number of year, weeks starting on Monday

%W - week number of the current year as a decimal number, starting with
the first Monday as the first day of the first week

--
-- http://alvaro.es - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web: http://bits.demogracia.com
-- Mi web de humor al baño María: http://www.demogracia.com
--
Oct 10 '08 #4

P: n/a
Message-ID: <gc**********@huron.algomas.orgfrom Álvaro G. Vicario
contained the following:
>They are different things:

W - ISO-8601 week number of year, weeks starting on Monday

%W - week number of the current year as a decimal number, starting with
the first Monday as the first day of the first week
They may well be different, but it's not obvious. I'd never have
expected there to be a 'Week 0'
--
Geoff Berrow 0110001001101100010000000110
001101101011011001000110111101100111001011
100110001101101111001011100111010101101011
http://slipperyhill.co.uk - http://4theweb.co.uk
Oct 10 '08 #5

P: n/a
Geoff Berrow skrev:
>W - ISO-8601 week number of year, weeks starting on Monday

%W - week number of the current year as a decimal number, starting with
the first Monday as the first day of the first week

They may well be different, but it's not obvious. I'd never have
expected there to be a 'Week 0'
I think the difference is, that an ISO week belongs to the year, where
it has the most of it's days.
This implies, that week number one is the week with the first Thursday
of the year.

Regards

Jonathan
Oct 10 '08 #6

P: n/a
..oO(Jonathan Stein)
>Geoff Berrow skrev:
>>W - ISO-8601 week number of year, weeks starting on Monday

%W - week number of the current year as a decimal number, starting with
the first Monday as the first day of the first week

They may well be different, but it's not obvious. I'd never have
expected there to be a 'Week 0'

I think the difference is, that an ISO week belongs to the year, where
it has the most of it's days.
This implies, that week number one is the week with the first Thursday
of the year.
Exactly. As a result there can be years with 53 weeks, because the first
week of the new year may already start in the december of the last year.

Micha
Oct 10 '08 #7

This discussion thread is closed

Replies have been disabled for this discussion.