For Programmers: Free Programming Magazines  


Home > Archive > PHP Language > March 2008 > retrieve the day of the week









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author retrieve the day of the week
Kram Techie

2008-03-12, 8:01 am

Hi

i am trying to find a way to retrieve the day of the w from a mysql date.
example 11 Mar 2008 22:32:06
should equate to Tue, or Tuesday

Googled but no Joy. many online examples but i need a hint or some source to
work with.

Mark


ZeldorBlat

2008-03-12, 7:06 pm

On Mar 12, 8:15 am, "Kram Techie" <kramTec...@NOSPAM.ntlworld.com>
wrote:
> Hi
>
> i am trying to find a way to retrieve the day of the w from a mysql date.
> example 11 Mar 2008 22:32:06
> should equate to Tue, or Tuesday
>
> Googled but no Joy. many online examples but i need a hint or some source to
> work with.
>
> Mark


Googling is fine -- but it wouldn't have hurt to look in the MySQL
manual, either:

<http://dev.mysql.com/doc/refman/5.0/en/date-and-time-
functions.html#function_dayname>
Alred Wallace

2008-03-12, 7:06 pm


"Kram Techie" <kramTechie@NOSPAM.ntlworld.com> a écrit dans le message de
news: 9PPBj.10809$qW6.8607@newsfe6-win.ntli.net...
> Hi
>
> i am trying to find a way to retrieve the day of the w from a mysql
> date.
> example 11 Mar 2008 22:32:06
> should equate to Tue, or Tuesday
>
> Googled but no Joy. many online examples but i need a hint or some source
> to work with.
>
> Mark
>
>



hi Mark,
first the timestamp is the best way to find day of the w. A timestamp
look like : 3215649870354 (secondes).

I don't know how are stored your data. Let's imagine the worst: in a
string!!
and the month are stored like:jan, mar,feb...
and not like 1 (jan), 2 (feb)...
we will be forced to make an array.
Let's begin the script:

<?
///////////////// input date:
$date = "11 Mar 2008 22:32:06";

///////////// array retrivinbg number of months:
$Months = Array(
"Jan" => 1,
"Feb" => 2,
"Mar" => 3,
"Apr" => 4,
"May" => 5,
"Jun" => 6,
"Jul" => 7,
"Aug" => 8,
"Sep" => 9,
"Oct" => 10,
"Nov" => 11,
"Dec" => 12
);


///////// let's transorm your date in timestamp:
/// let's mlake an array to retrive values of: day, month, year:
$dateArray = explode( " ",$date );
$day = $dateArray[0];
/////// tranform the month like "Mar" in a number (3)
$month = $Months[ $dateArray[1] ];
$year=$dateArray[2];
///// now, we own: $day, $month,$year in numeric format.

// creating timestamp: mktime(hour, minute,second,month,day,year);
/////// in this case the value is:1205193600
$dateTimeStamp = mktime( 1, 0 , 0 , $month , $day , $year );

//////// retreiving the name of the day (see "date function" doc in php
manual)
//// "l" is L lowercase
$TheNameOfTheDay = date( "l",$dateTimeStamp );

echo "date ini:".$date."<br />";
echo "<h1>".$TheNameOfTheDay."</h1>";
echo "timestamp:".$dateTimeStamp;
?>






Michael Fesser

2008-03-12, 7:06 pm

..oO(Kram Techie)

>i am trying to find a way to retrieve the day of the w from a mysql date.
>example 11 Mar 2008 22:32:06


This is not a MySQL date, which would be 2008-03-11 22:32:06 instead.
With that format it's pretty easy to do calculations and manipulations
with MySQL's date and time functions.

Micha
Michael Fesser

2008-03-12, 7:06 pm

..oO(Alred Wallace)

>first the timestamp is the best way to find day of the w. A timestamp
>look like : 3215649870354 (secondes).


The best is to let the database handle that.

>I don't know how are stored your data. Let's imagine the worst: in a
>string!!
>and the month are stored like:jan, mar,feb...
>and not like 1 (jan), 2 (feb)...
>we will be forced to make an array.
>Let's begin the script:
>[...]


Have a look at strtotime().

<?php
$date = '11 Mar 2008 22:32:06';
print date('l', strtotime($date));
?>

Micha
Kram Techie

2008-03-12, 7:06 pm


"Michael Fesser" <netizen@gmx.de> wrote in message
news:2brft39fv1d57bnhhdom9lvs7irsgsp122@
4ax.com...
> .oO(Alred Wallace)
>
>
> The best is to let the database handle that.
>
>
> Have a look at strtotime().
>
> <?php
> $date = '11 Mar 2008 22:32:06';
> print date('l', strtotime($date));
> ?>
>
> Micha


Hi Micha

that works a treat

Thanks to all who replied

Mark


Michael Fesser

2008-03-12, 7:06 pm

..oO(Kram Techie)

>"Michael Fesser" <netizen@gmx.de> wrote in message
> news:2brft39fv1d57bnhhdom9lvs7irsgsp122@
4ax.com...
>
>Hi Micha
>
>that works a treat


It still means that the dates in your DB are stored in the wrong format.
The date column should be of type DATETIME.

Micha
Kram Techie

2008-03-12, 7:06 pm

"Michael Fesser" <netizen@gmx.de> wrote in message
news:lgtft31jkvec591mcnjgob2q1cbhfeab61@
4ax.com...
> .oO(Kram Techie)
>
>
> It still means that the dates in your DB are stored in the wrong format.
> The date column should be of type DATETIME.
>
> Micha


Hi Micha

it is DATETIME but for display i have to re-format it.

Mark


Michael Fesser

2008-03-12, 7:06 pm

..oO(Kram Techie)

>it is DATETIME but for display i have to re-format it.


Ah, OK. But then you can let the database return the day of w, which
would be more efficient than doing it in PHP. See DATE_FORMAT() for
details.

http://dev.mysql.com/doc/refman/5.0...ion_date-format

Micha
Kram Techie

2008-03-14, 7:11 pm


"Michael Fesser" <netizen@gmx.de> wrote in message
news:j52gt3tlsg7tv1b3ml0uhi7p0tlh843g9i@
4ax.com...
> .oO(Kram Techie)
>
>
> Ah, OK. But then you can let the database return the day of w, which
> would be more efficient than doing it in PHP. See DATE_FORMAT() for
> details.
>
> http://dev.mysql.com/doc/refman/5.0...ion_date-format
>
> Micha


Hi

i used %a to get short day "SELECT DATE_FORMAT('$datetime', '%a')"
works a treat and the other % values will come in handy at a later date.

Mark


Michael Fesser

2008-03-14, 7:11 pm

..oO(Kram Techie)

>i used %a to get short day "SELECT DATE_FORMAT('$datetime', '%a')"
>works a treat and the other % values will come in handy at a later date.


Glad it worked out.

Micha
Christoph Kappestein

2008-03-15, 8:00 am

Kram Techie schrieb:
> Hi
>
> i am trying to find a way to retrieve the day of the w from a mysql date.
> example 11 Mar 2008 22:32:06
> should equate to Tue, or Tuesday
>
> Googled but no Joy. many online examples but i need a hint or some source to
> work with.
>
> Mark
>
>


you can do that with php ...

$time = strtotime(mysql date);
echo date('D', $time);

for sure a solution in mysql is more efficient

mfg
k42b3
Kram Techie

2008-03-15, 7:08 pm

"Christoph Kappestein" <meecrob@k42b3.com> wrote in message
news:frgfnn$6hb$02$1@news.t-online.com...
> Kram Techie schrieb:
>
> you can do that with php ...
>
> $time = strtotime(mysql date);
> echo date('D', $time);
>
> for sure a solution in mysql is more efficient
>
> mfg
> k42b3


$time = strtotime("24 Feb 2008 22:51:08");
echo date('D', $time);
Sun

as MySQL works a dream I'll stick with that.

Mark


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com