Вы также можете попробовать следующее:
<div ng-init="myVar = 'www.thesoftdesign'">
<h1>Tutorials</h1>
<p>Go to <a ng-href="{{myVar}}">{{myVar}}</a> to learn!</p>
</div>
Проблему перехода на летнее время можно обойти, взяв 3600 с сегодняшнего полудня вместо текущего времени:
#!/usr/bin/perl
use strict;
use warnings;
use Time::Local;
sub spGetYesterdaysDate;
print spGetYesterdaysDate;
sub spGetYesterdaysDate {
my ($sec, $min, $hour, $mday, $mon, $year) = localtime();
my $yesterday_midday=timelocal(0,0,12,$mday,$mon,$year) - 24*60*60;
($sec, $min, $hour, $mday, $mon, $year) = localtime($yesterday_midday);
my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
my $YesterdaysDate = sprintf "%s %02d %4d", $abbr[$mon], $mday, $year+1900;
return $YesterdaysDate;
}
В свете «неуказанного» задокументированного поведения решения strftime, предложенного Часом, этот подход может быть лучше, если вы: re не может протестировать ожидаемые, но не гарантированные результаты на нескольких платформах.
Как ни заманчиво просто вычесть секунды дня из текущего времени, бывают случаи, когда это приведет к неправильному ответу (дополнительные секунды, летнее время и, возможно, другие). Мне легче просто позволить strftime
(доступному в основном модуле Perl 5 POSIX
) позаботиться обо всем этом за меня.
#!/usr/bin/perl
use strict;
use warnings;
use Time::Local;
use POSIX qw/strftime/;
#2010-03-15 02:00:00
my ($s, $min, $h, $d, $m, $y) = (0, 0, 0, 15, 2, 110);
my $time = timelocal $s, $min, $h, $d, $m, $y;
my $today = strftime "%Y-%m-%d %T", localtime $time;
my $yesterday = strftime "%Y-%m-%d %T", $s, $min, $h, $d - 1, $m, $y;
my $oops = strftime "%Y-%m-%d %T", localtime $time - 24*60*60;
print "$today -> $yesterday -> $oops\n";
используйте Time :: Piece .
use strict;
use warnings;
use 5.010;
# These are core modules in Perl 5.10 and newer
use Time::Piece;
use Time::Seconds;
my $yesterday = localtime() - ONE_DAY;
say $yesterday->strftime('%b %d %Y');
Обратите внимание, что это может пойти не так в некоторых пограничных случаях, например, при переходе на летнее время. Следующая версия действительно работает правильно в таких случаях:
use strict;
use warnings;
use 5.010;
# These are core modules in Perl 5.10 and newer
use Time::Piece;
use Time::Seconds;
my $now = localtime();
my $yesterday = $now - ONE_HOUR*($now->hour + 12);
say $yesterday->strftime('%b %d %Y');
В качестве альтернативы вы можете использовать модуль DateTime, как описано в другом ответе. Однако это не основной модуль.
use DateTime qw();
DateTime->now->subtract(days => 1);
Выражение во второй строке возвращает объект DateTime
.