这是我正在尝试做的事情(没有什么复杂的):
use Digest::MD5 qw(md5 md5_hex md5_base64);
$apikey = '1234';
$secret = '123';
$timestamp = gmdate('U');
$sig = md5($apikey . $secret . $timestamp);
echo $sig
因此,错误发生在$ timestamp = gmdate行上。
我做错了什么?
答案 0 :(得分:3)
我认为您正在寻找gmtime
函数,而不是gmdate
函数。虽然,现在我发现你正在将'U'
传递给它,但我很困惑。
啊,我现在看到,PHP使用gmdate('U')
的方式与Perl 5使用gmtime()
的方式相同。
糟糕,我的记忆失败,您需要使用Time::Local
或POSIX::mktime
将localtime
或gmtime
的结果转换为纪元秒。
#!/usr/bin/perl
use strict;
use warnings;
use POSIX qw/mktime/;
use Time::Local qw/timegm/;
print "the time is now ", timegm(localtime()), " or ", mktime(gmtime()), "\n";