Perl语法帮助
我是perl新手,有人能在下面解释一下使用$t[1]和timelocal(1,1,1,reverse@t)的目的吗 下面的命令用于将时间戳转换为历元格式。但是请解释一下这个命令$t[1]和timelocal(1,1,1,reverse@t)的用法Perl语法帮助,perl,Perl,我是perl新手,有人能在下面解释一下使用$t[1]和timelocal(1,1,1,reverse@t)的目的吗 下面的命令用于将时间戳转换为历元格式。但是请解释一下这个命令$t[1]和timelocal(1,1,1,reverse@t)的用法 它从第一个分量中减去1。@t数组的。 我认为这是月份字段。 注意:第一个[1],而不是第零个[0] 问候, 它从第一个分量中减去1。@t数组的。 我认为这是月份字段。 注意:第一个[1],而不是第零个[0] 问候, Vern.一个例子如下: per
它从第一个分量中减去1。@t数组的。 我认为这是月份字段。 注意:第一个[1],而不是第零个[0] 问候,
它从第一个分量中减去1。@t数组的。 我认为这是月份字段。 注意:第一个[1],而不是第零个[0] 问候,
Vern.一个例子如下:
perl -MTime::Local=timelocal -e '
@t = split(/[-\/]/, $ARGV[0]);
$t[1]--;
print timelocal(1,1,1,reverse @t);
' "2016-10-18"
将打印一个纪元日期(自1970年1月1日起的秒数)
查看文档:我们看到:
值得特别注意的是所提供值的预期范围。月中某一天的值为实际日期(即1..31),
而月份是自1月以来的月数(0..11)。这是
与localtime()和gmtime()返回的值一致
第一条语句用破折号和斜杠将字符串2016-10-18
拆分为数组@t=(2016,10,18)
。Perl数组默认基于0,因此$t[1]
表示第二项,即月份,此处设置为10
。由于localtime
在(0-11)
范围内需要几个月的时间,我们需要减去1
,将$t[1]
设置为9
。最后一条语句只是将日期部分转换回历元时间,反转@t
以将参数顺序与timelocal匹配:
# timelocal( $sec, $min, $hour, $mday, $mon, $year )
$time = timelocal( 1, 1, 1, 18, 9, 2016 ); # time in seconds = 1476766861
例如:
perl -MTime::Local=timelocal -e '
@t = split(/[-\/]/, $ARGV[0]);
$t[1]--;
print timelocal(1,1,1,reverse @t);
' "2016-10-18"
将打印一个纪元日期(自1970年1月1日起的秒数)
查看文档:我们看到:
值得特别注意的是所提供值的预期范围。月中某一天的值为实际日期(即1..31),
而月份是自1月以来的月数(0..11)。这是
与localtime()和gmtime()返回的值一致
第一条语句用破折号和斜杠将字符串2016-10-18
拆分为数组@t=(2016,10,18)
。Perl数组默认基于0,因此$t[1]
表示第二项,即月份,此处设置为10
。由于localtime
在(0-11)
范围内需要几个月的时间,我们需要减去1
,将$t[1]
设置为9
。最后一条语句只是将日期部分转换回历元时间,反转@t
以将参数顺序与timelocal匹配:
# timelocal( $sec, $min, $hour, $mday, $mon, $year )
$time = timelocal( 1, 1, 1, 18, 9, 2016 ); # time in seconds = 1476766861
命令的输出是什么。你能运行它吗?命令的输出是什么。你能运行它吗?非常感谢你的解释。这对我理解很有帮助。再次非常感谢你的帮助非常感谢你伟大的解释。这对我的理解帮助很大。再次感谢你的帮助