Timestamp vagy valami más?

A változatosság kedvéjért újra egy kérdést teszek fel.:stuck_out_tongue: Amit szeretnék megvalósítani, az nagyon egyszerű, nekem viszont még is nehéz megoldás. A főoldalon megjelenő bejegyzések dátumát szeretném oly módon megjeleníteni, hogy az ne dátum formátumként, hanem percek, órák és napokként legyen jelölve. A wordpress bejegyzések mellet általában egy dátum formátum szokott megjelenni, ebben a formában (2010.8.14 - 16:20). Nekem egyszerűbb formátumra lenne szükségem, a bejegyzés mellet nem dátumot, hanem egyszerű időt szeretnék elhelyezni.











Egy példa a jobb érthetőség kedvéjért: 10 perce, 1 órája, 1 napja, stb. Ez gondolom nem egy bonyolult dolog, csak a megfelelő formátum kéne, amit én sajnos nem találok sehol. Nem tudom, hogy keressem, hogy milyen kód sor kell nekem. Ebben kérném a segítségeteket…

A sablonban keresd ezt

















cseréld ki erre




Kipróbáltam, de sajna nem mükszik. Minden eltűnik az oldalról… :S

Azóta találtam egy kódot, ami megfelelő, csak egy a baj vele, a magyar ragokat nem ismeri, vagy csak valamivel meg kéne toldani a kódot?





A következőképpen jelenik meg az idő: 3 nap ago, értelem szerüen úgy lenne a helyes, hogy 3 nappal ezelőtt, vagy 3 napja. De ezt nem tudja. Mit kéne nekemmódosítanom ebben a kódban, hogy teljesen magyarúl jelenítse meg az időformátumot?











Ez a rész kerül a function.php-ba:











function time_ago( $type = ‘post’ ) {





$d = ‘comment’ == $type ? ‘get_comment_time’ : ‘get_post_time’;





return human_time_diff($d(‘U’), current_time(‘timestamp’)) . " " . __(‘ago’);





}











Ez pedig az index.php-ba, vagy ahol megszeretnénk jeleníteni, nálam a home.php hírek részénél lenne.











Code:



function time_ago( $type = 'post' ) {

$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';

return human_time_diff($d('U'), current_time('timestamp')) . " " . __('nappal ezelőtt');

}




'varnyu' wrote on '2010-08-14:




Code:



function time_ago( $type = 'post' ) {

$d = 'comment' == $type ? 'get_comment_time' : 'get_post_time';

return human_time_diff($d('U'), current_time('timestamp')) . " " . __('nappal ezelőtt');

}










Ezzel csak az a probléma, hogy ha fel kerül egy friss hír, akkor percben mutatja az eltelt időt, majd órában, és csak utána napban..:) Tehát hiába írom én oda be, hogy ,,nappal ezelőtt", hiszen ha 1 perce raktam fel a bejegyzést, akkor is ez a szöveg marad az idő előtt..:)

A codex mindig nagyon hasznos. Mindenki hangoztatja a fórumon és nem véletlenül. :slight_smile:

Úgy látom itt hiába kérek segítséget, csak nem kapok választ. Na mindegy, majd megoldom egyedül és a jövőben én is így állok hozzá a dolgokhoz. Ennyit a magyar Wordpress fórumról. Kösz! Minden jót…

A fenti kódot nem tudod átírni, mert csak az “ago” cserélhető, a ragok nem.





Ezzel talán többre mész (igaz, hogy csak az órákig van legyártva, de a diff értéket 24-szerezve szerintem lehet bővíteni pl. napokkal):





http://dev-tips.com/featured/creating-a-relative-time-function











És ne tessék rinyálni, én minden nap felnézek errefelé, mégis most látom először ezt a témát. :smiley:

@Dreamelf





Azért mert nem oldja meg más a problémádat még nem kell sírni…

mellékesen siránkozás helyett ennyibe telt:





http://www.google.hu/search?q=wordpress+posted+ago&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a





5ik link > ( this plugin ) > download > extract > .js file benne >



Code:



settings: {

refreshMillis: 60000,

allowFuture: false,

strings: {

prefixAgo: null,

prefixFromNow: null,

suffixAgo: "ago",

suffixFromNow: "from now",

ago: null, // DEPRECATED, use suffixAgo

fromNow: null, // DEPRECATED, use suffixFromNow

seconds: "less than a minute",

minute: "about a minute",

minutes: "%d minutes",

hour: "about an hour",

hours: "about %d hours",

day: "a day",

days: "%d days",

month: "about a month",

months: "%d months",

year: "about a year",

years: "%d years"

}

},





hmmm beletelt vagy 5 percbe.. amiből 1ben gondolkodni is kellett.. a többiben csak kattingatni mint az eszement.. de ha más nem csinálja meg helyetted akkor jó idejönni rinyálni mi? hát bakker..


[off]bocs a dupláért..[/off]

'hgrg' wrote on '2010-09-02:




mellékesen siránkozás helyett ennyibe telt:


http://www.google.hu/search?q=wordpress+posted+ago&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a


5ik link > ( this plugin ) > download > extract > .js file benne >


Code:



settings: {

refreshMillis: 60000,

allowFuture: false,

strings: {

prefixAgo: null,

prefixFromNow: null,

suffixAgo: "ago",

suffixFromNow: "from now",

ago: null, // DEPRECATED, use suffixAgo

fromNow: null, // DEPRECATED, use suffixFromNow

seconds: "less than a minute",

minute: "about a minute",

minutes: "%d minutes",

hour: "about an hour",

hours: "about %d hours",

day: "a day",

days: "%d days",

month: "about a month",

months: "%d months",

year: "about a year",

years: "%d years"

}

},





hmmm beletelt vagy 5 percbe.. amiből 1ben gondolkodni is kellett.. a többiben csak kattingatni mint az eszement.. de ha más nem csinálja meg helyetted akkor jó idejönni rinyálni mi? hát bakker..


[off]bocs a dupláért..[/off]








De jó neked, hogy ilyen okos vagy és hogy a google a barátod, tele vagy jóindulattal. De hát mit is várjon az ember a magyartól. Csak lekezelést és nagyképűséget, ez neked is megy. Ilyen emberektől nekem nem kell a segítség. Tartsd meg magadnak..

'psztrnk' wrote on '2010-09-02:




A fenti kódot nem tudod átírni, mert csak az "ago" cserélhető, a ragok nem.


Ezzel talán többre mész (igaz, hogy csak az órákig van legyártva, de a diff értéket 24-szerezve szerintem lehet bővíteni pl. napokkal):


http://dev-tips.com/featured/creating-a-relative-time-function





És ne tessék rinyálni, én minden nap felnézek errefelé, mégis most látom először ezt a témát. :D








Köszi, ránézek.:)

Találtam egy remek kódot, amivel sikerült megoldanom a problémám. Hát ha valakinek szintén erre van szüksége.:slight_smile:











Meg kell nyitni a témánk fuctions.php fájlját, majd bele illeszteni az alábbi kódot. Mentés…









Code:

function timeAgo($timestamp, $granularity=2, $format='Y-m-d H:i:s'){

$difference = time() - $timestamp;

if($difference < 0) return '0 seconds ago';

elseif($difference < 864000){

$periods = array('week' => 604800,'day' => 86400,'hr' => 3600,'min' => 60,'sec' => 1);

$output = '';

foreach($periods as $key => $value){

if($difference >= $value){

$time = round($difference / $value);

$difference %= $value;

$output .= ($output ? ' ' : '').$time.' ';

$output .= (($time > 1 && $key == 'day') ? $key.'s' : $key);

$granularity--;

}

if($granularity == 0) break;

}

return ($output ? $output : '0 seconds').' ago';

}

else return date($format, $timestamp);

}








Meghívni pedig az alábbi kóddal tudjuk. Ezt oda illesszük be, ahol meg akarjuk jeleníteni az időformátumot.





Code:









Az első nap másodpercekben, percekben és órákban jelezi a cikk bejegyzésének idejét, majd egy hétig napokban számolja. Ha letelt az egy hét, akkor át vált a szokásos dátum formátumra.





Remek kis kód, és egyszerű a beépítése, nem igényel bonyolult, hosszadalmas munkát. 5 perc és máris használható. Az is nagyon jó, hogy könnyedén magyarítható, tehát nem lesz gond a ragozással.





Remélem hasznotokra válik nektek is és tudtam valakinek segíteni. :)





Az eredeti bejegyzést pedig itt találjátok meg.