Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: convert it to unix time stamp

by oikool (Novice)
on Feb 21, 2014 at 09:35 UTC ( #1075719=note: print w/replies, xml ) Need Help??


in reply to Re: convert it to unix time stamp
in thread convert it to unix time stamp

#use strict; use warnings; use Time::Local; my @day_Of_Month={5,16,20}; #i want to use this array one by one to do unix time stamp use Time::Piece; my $t = localtime($^T); print 'entire time: ', $t; print "\n"; print 'Month: ', $t->month; print "\n"; print 'Year: ', $t->year; print "\n"; $updatetime = timegm(59,59,23,$dayOfMonth,$month-1,$year); print $updatetime;

im using this to create unix timestamp. but as im extracting the month and year, from localtime and the date of the month i have kept in the array that i will use to change to unix timestamp. how will i do unix timestamp for three given dates thats written in the array??

Replies are listed 'Best First'.
Re^3: convert it to unix time stamp
by sn1987a (Chaplain) on Feb 21, 2014 at 12:53 UTC
    It looks like you want to create a series of timestamps, one for each day in the @day_of_Month array. After fixing the initialization as indicated by Bloodnok, you just need to loop through the days:
    use strict; use warnings; use Time::Local; my @day_Of_Month = ( 5, 16, 20 ); #i want to use this array one by one to do unix time stamp use Time::Piece; my $t = localtime($^T); printf "entire time: %s\n", $t; printf "Month: %s\n", $t->month; printf "Year: %s\n", $t->year; for my $dayOfMonth (@day_Of_Month) { my $updatetime = timegm(59,59,23,$dayOfMonth, $t->_mon, $t->year); printf "time for %2d %d (%s)\n", $dayOfMonth, $updatetime, scalar gmtime($updatetime); } #time for 5 1391644799 (Wed Feb 5 23:59:59 2014) #time for 16 1392595199 (Sun Feb 16 23:59:59 2014) #time for 20 1392940799 (Thu Feb 20 23:59:59 2014)
Re^3: convert it to unix time stamp
by Bloodnok (Vicar) on Feb 21, 2014 at 12:06 UTC
    If you really want to 'use this array one by one to do unix time stamp', it might pay you to change the initialization - for some reason, you're initialising the array with a hash ref (using a badly constructed hash definition, I might add) - I think you meant to write @day_Of_Month=(5,16,20); - quite what the purpose of this array is, I can't fathom from its' usage since the only reference is $day_Of_Month ... which doesn't exist.

    A user level that continues to overstate my experience :-))
Re^3: convert it to unix time stamp
by Not_a_Number (Prior) on Feb 21, 2014 at 20:06 UTC

    You don't really need any module other than core Time::Local.

    use Time::Local; use 5.010; my ( $month, $year ) = ( gmtime($^T) )[ 4, 5 ]; my @month_days = ( 5, 16, 20 ); say timegm( 59, 59, 23, $_, $month, $year ) for @month_days;

    In addition, that sort of simplifies things, doesn't it?

    Update: Linkified Time::Local

Re^3: convert it to unix time stamp
by Anonymous Monk on Feb 21, 2014 at 17:33 UTC

    ... stuff that is not "strftime" method/function

    Hmm, my suggestion was to use strftime method, both Time::Piece and DateTime have one

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1075719]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (6)
As of 2018-05-21 19:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?