Здравствуйте!
Нужно посчитать epoch-time к началу текущего дня (00:00:00).
Проблема в том, что он, судя по всему, как-то не так учитывает часовой пояс (GMT+4). Т.е. у него день перескакивает не в 00:00 по локальному, а в 04:00.
Код:
#!/usr/bin/perl
use strict;
use warnings;
use POSIX;
my $time;
my $day_sec;
my $tz;
my $day_start;
my $time_shift;
my $epoch;
$time=time();
print "Time: $time\n";
$day_sec=$time % (3600*24);
$tz=strftime("%z",localtime($time));
if ($tz=~/^\+(\d\d)(\d\d)$/) {
$time_shift=$1*3600+$2*60;
};
$day_start=$time-$day_sec-$time_shift;
print "$1\n";
print "$2\n";
print "Time: $time\n";
print "Day_sec: $day_sec\n";
print "Timezone: $tz\n";
print "Timeshift: $time_shift\n";
print "Day start: $day_start\n";