note
Krambambuli
Hi,
with the following code replacing your main code,
<code>
my @tides = ( { time_in_seconds => 0,
high_low => 'Unknown',
time => 'Unknown',
} );
foreach my $tides (@{$data->{data}->{item}}) {
if($tides->{date} eq $today_date) {
$tides->{highlow} =~ s/L/Low/;
$tides->{highlow} =~ s/H/High/;
my $format_date = "$tides->{date} $tides->{time}";
my $date_to_seconds = str2time($format_date);
#print " Test: ".$tides->{highlow}, " Tide at: ", $tides->{time}, "\n";
$tides->{time_in_seconds} = $date_to_seconds;
push @tides, $tides;
}
}
push @tides, { time_in_seconds => $now_in_seconds + 10000000,
highlow => 'Unknown',
time => 'Unknown',
};
my @future_tides = grep { $_->{time_in_seconds} >= $now_in_seconds } @tides;
my @past_tides = grep { $_->{time_in_seconds} < $now_in_seconds } @tides;
my $next_tide = $future_tides[0];
my $previous_tide = $past_tides[ -1];
print "Next tide: ", $next_tide->{highlow}, " Tide at: ", $next_tide->{time}, "\n";
print "iPrevious tide: ", $previous_tide->{highlow}, " Tide at: ", $previous_tide->{time}, "\n";
exit;
</code>
I get <br><br>
<code>
2013/03/27, 06:05 AM - Now in Seconds is: 1364378700
Next tide: Low Tide at: 06:20 AM
Previous tide: High Tide at: 12:21 AM
</code>
which might be close to what you wish.
[UPDATE] Updated code to display something whatever the 'now' time is.
1025613
1025613