Page 1 of 1

Display of the 'time variable' ...gustspeedmin_time

Posted: Sat Aug 16, 2014 5:05 pm
by joachimF
Hallo,

the time format is : 20140816003138
very bad (for reading)
Is there a better solution?

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Sat Aug 16, 2014 6:49 pm
by wvdkuil
joachimF wrote:Hallo,

the time format is : 20140816003138
very bad (for reading)
Is there a better solution?
These data fields are all the same, for all weatherdata fields, for the highs and lows, time periods as today, last month and so on.
They are human readable and are easy to process in php. What could one want more?
After much experience with all kind of weatherprograms in the past three years, I still prefer the meteohub data format, although with hindsight an extra T between the data and the time part whould have been a more standardized form 20140816T003138 to process.

I attached a small portion of my trends page with Meteohub data and times. now in human readable form.

Please explain a little more, what exactly is it that you want to be different?
Always ready to learn something new.

Wim

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Sat Aug 16, 2014 10:30 pm
by admin
Chapter 3.4 in the Meteohub manual explains how to decompose strings like that into a representation you like more. Please have a closer look at the "#" operator.

Re: Display of the 'time variable' [solved]

Posted: Sun Aug 17, 2014 5:23 pm
by joachimF
admin wrote:Please have a closer look at the "#" operator.
there I found the solution :)

code
um [day1_th0_tempmax_time#IJ]:[day1_th0_tempmax_time#KL]
result
um 14:35

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Sun Aug 17, 2014 10:40 pm
by joachimF
wvdkuil wrote:are easy to process in php.
Bonsoir Wim,

I found a solution but I am also interested in a php solution. There is a HTML table in the MH Template

<table >
<tr>
<td class="links">Temp MAX heute<span class="klein_links">
um [day1_th0_tempmax_time#IJ]:[day1_th0_tempmax_time#KL]</span></td>
<td class="rechts">[day1_th0_tempmax_c] &deg;C</td>
</tr>

and MH uploaded this template and on my site you see this

Temp MAX heute um 14:51 28.7 °C

Please tell me explicit your way for display the date.

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Mon Aug 18, 2014 9:51 am
by wvdkuil
joachimF wrote:
wvdkuil wrote:are easy to process in php.
Bonsoir Wim,

I found a solution but I am also interested in a php solution. There is a HTML table in the MH Template

<table >
<tr>
<td class="links">Temp MAX heute<span class="klein_links">
um [day1_th0_tempmax_time#IJ]:[day1_th0_tempmax_time#KL]</span></td>
<td class="rechts">[day1_th0_tempmax_c] &deg;C</td>
</tr>

and MH uploaded this template and on my site you see this

Temp MAX heute um 14:51 28.7 °C

Please tell me explicit your way for display the date.
The normal way of working in PHP is to use the date function. It accepts a unix-date which is a 32 bit integer. The two functions in the examples, take a standard format string (example: 'd-m-Y') and a Meteohub datetime string as input. The resulting string is than returned as if a normal PHP date function was called. For long dates such as 'Freitag, 14 November 2014' another PHP function is used to translate the default english day and month names. Examples:

Code: Select all

This datetime will be used = 20141114150300

formatted date for 'd-m-Y H:i' = 14-11-2014 15:03

formatted date for 'H:i' = 15:03

formatted date for 'H' = 15

formatted date for 'd-m-Y' = 14-11-2014

formatted date for 'd-m' = 14-11



For date strings with day or month names we use a different function 

formatted date for '%A, %d %B %Y' = Friday, 14 November 2014

and for 'de_DE' the same function call returns = Freitag, 14 November 2014
So in your case it is only one date-time function, but it could be used in that place by replacing

Code: Select all

      um [day1_th0_tempmax_time#IJ]:[day1_th0_tempmax_time#KL]</span></td>
with

Code: Select all

      um <?php echo my_date( 'H:i', '[day1_th0_tempmax_time]'); ?></span></td>
or even better

Code: Select all

      um <?php echo my_date( $timeOnlyFormat, '[day1_th0_tempmax_time]'); ?></span></td>
The extension of the uploaded file would have to be .php
The definitions (such as $timeOnlyFormat) and the functions should either be included by a PHP include function or by adding it at the start of the .html in your Meteohub graphs folder.

It looks like far more work, and it is if it is only one date time field. But weather websites tend to grow, so it is easier to have all general functions for all pages in one script and use those standard functions and standard formats over and over again.

Wim

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Mon Aug 18, 2014 1:57 pm
by joachimF
Hi Wim,

many thanks for your explanation of the date function. I have tested it and it works, but i notice different times with php solution and the # operator :
Temperature 29.3 °C
um 20140818132809 - day1_th0_tempmax_time
um 13:28 - day1_th0_tempmax_time#IJ:........
um 00:33 - php ( 'H:i', '20140818132809')

Re: Display of the 'time variable' ...gustspeedmin_time

Posted: Mon Aug 18, 2014 2:22 pm
by wvdkuil
joachimF wrote:Hi Wim,

many thanks for your explanation of the date function. I have tested it and it works, but i notice different times with php solution and the # operator :
Temperature 29.3 °C
um 20140818132809 - day1_th0_tempmax_time
um 13:28 - day1_th0_tempmax_time#IJ:........
um 00:33 - php ( 'H:i', '20140818132809')
The date function only works with an integer-value of an existing date as input.
you are feeding it a string date which is definitly not the integer value.
Take a look at the functions I included.
IN the function

Code: Select all

	$date 	= strtotime(substr($mhdate,0,8).'T'.substr($mhdate,8,6));
step 1 is add an T in the middle of the MH string: 20140818132809 becomes '20140818T132809 by the (substr($mhdate,0,8).'T'.substr($mhdate,8,6) part to make the string a date-string the strtotime function understands.
step 2 is convert that to an integer which is done by $date = strtotime( ) the rest of the first line;
step 3 is to let the $string = date($format,$date); date function generate an date in the format you want = date('format i want' , integerdate);

Hopes this clarifies, but again if it is only for a few dates, you should use the # ad the MH tag.

Wim

Re: Display of the 'time variable' [solved php]

Posted: Mon Aug 18, 2014 3:11 pm
by joachimF
wvdkuil wrote:Hopes this clarifies
Yes it is. Now I have the time with php :D .
I use the # , but now I understand 'php time' and this is usefull, when I make a new MH website.