Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe und besinnliche Weihnachten!

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Postdatum = Dateline?????
#1
Hallo, ich bin der neue Wink

Ich möchte mich erstmal bissl vorstellen. Ich heiße Oliver , bin 20 Jahre alt
185cm groß... Megasmile naja gut, ich denk ma das mein Problem wichtiger ist als meine Persönlichen Details.

Also mir wurde das MyBB wärmstens empfohlen und hab das dann auch direkt bei mir auf den Server gehauen.
Da ich gerne den Kram selber schreibe den ich benutze hab ich auch ein paar probleme mit einem Externen Zugriff auf 1 Forumteil das als Newssektion genutzt werden soll.
Im Forum steht was von Postdatum, in der DB habe ich leider nur etwas von einer Dateline gelesen und da steht auch keine richtige Uhrzeit sondern nur Zahlengewirr O.o
Ist die Spalte Dateline überhaupt die Postzeit und wenn ja, wie kann man die so konvertieren das die zu einer richtigen Uhrzeit wird.

Suche habe ich auch konsultiert aber da kam nix bei raus Sad

mfg Tarzipan
#2
Hallo und Willkommen Tarzipan,
Das Feld dateline enthält den Timestamp des Datum.
Wie du den Timestamp formatierst kannst du hier nachlesen.

Angewendet, bzw. ausgelesen, wird das Datum also so:
$date = date($arrayschlüssel['dateline']), "FORMATIERUNG");

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
#3
Hallo Tarzipan,

das ist ein Unix Timestring, für den es SQL- und PHP-Funktionen gibt, um ihn zu konvertieren.

SELECT FROM_UNIXTIME(1111885200);

In php sind das wohl die Funktionen date() und time()

Ich hab da aber noch eine weitergehende Frage zu dem Thema im englischen myBB-Forum formuliert:

Hi,

I like to publish articles in a forum. The dates of the articles are different from the creation date of the post. So I would like to edit the cration date of a post, to have the correct sort order.

I found no option to edit this via admin cp

I found field dateline within table mybb_posts. Can I edit that manualy? Do I have to take care about field posthash in the same table?

Thanks in advance for your help.
Regards
Heinrich


Vielleich kann hier jemand dazu etwas sagen.

Viele Grüße
Heinrich
#4
OMG danke, ich hab noch nie so schnell Antworten auf ne FRage bekommen Embarrassed


hab das hier probiert, funktioniert aber irgendwie nicht so

$writetime = time($dateline, "h.m");
oder
$writetime = date($dateline, "h.m");

Was mache ich falsch?
#5
Hallo warp-it,
Das Datum manuell zu ändern hat normaler weiße keine Auswirkungen auf den posthash, zumindest sieht das so weit danach aus.
Der Posthash wird hiermit erstellt:
PHP-Code:
// Setup our posthash for managing attachments.
if(!$mybb->input['posthash'] && $mybb->input['action'] != "editdraft")
{
    
mt_srand ((double) microtime() * 1000000);
    
$mybb->input['posthash'] = md5($thread['tid'].$mybb->user['uid'].mt_rand());

Der posthash wird einmal erstellt und in einem Feld als Abgleich gespeichert. Die Zeit ist hier nur ein Element für die Zufallsgenerierung(wenn ich das nicht falsch heraus lese).

@Tarzipan
Hast du denn das Feld dateline aus der db auslesen lassen?
Bitte poste den Codeschnipsel, mit welchem du das datum auslesen lässt.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
#6
PHP-Code:
$abfrage "SELECT * FROM mybb_threads WHERE fid LIKE '3' ORDER BY dateline DESC LIMIT 10";
$ergebnis mysql_query($abfrage);
while(
$show mysql_fetch_object($ergebnis))
{
    
//nachricht aus forum rausholen//
    
$subjekt $show->subject;
    
$writer $show->username;
    
$tid $show->tid;
    
$replies $show->replies;
    
$views $show->views;
    
$dateline $show->dateline;
... 
//irgendwann gehts zu

$writetime time($dateline"h.m");
//irgendwann echo// 
das ist der code den ich gebaut habe also hab ich diesen code in der $dateline variable stehn. In dem fall ist es 1180345590
#7
Garlant schrieb:Das Datum manuell zu ändern hat normaler weiße keine Auswirkungen auf den posthash, zumindest sieht das so weit danach aus.

Hallo Garlant,

die Frage ist, ob der Hash zum Inhalt der Felder passen muß, aus denen er gebildet wurde. Keine Ahnung ob und warum das irgendwo geprüft wird.

Viele Grüße
Heinrich
#8
@ tarzipan
Versuch mal bitte Folgenden Code:
PHP-Code:
$abfrage "SELECT * FROM mybb_threads WHERE fid LIKE '3' ORDER BY dateline DESC LIMIT 10";
$ergebnis mysql_query($abfrage);
while(
$show mysql_fetch_object($ergebnis))
{
    
//nachricht aus forum rausholen//
    
$subjekt $show['subject'];
    
$writer $show['username'];
    
$tid $show['tid'];
    
$replies $show['replies'];
    
$views $show['views'];
    
$dateline $show['dateline'];
    
$writetime time($dateline"h.m");
... 
//irgendwann gehts zu

//irgendwann echo// 

@warp-it
Wie bereits gesagt. Was ich mir im Datatahandler und in der newreply.php angesehen habe, zeugt davon, dass der Hash einmal erstellt wird und ab da nur zum Abgleich des Postattachments existiert. Die Zeit wird damit nicht abgeglichen, der Posthash muss also nicht zur Zeit passen.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!
#9
mit time bekomm ich einen sich stetig ändernden wert.

hab uach bei mir ein Fehler entdeckt, muss ja H.i heißen, nicht h.m^^

gibts keine funktion die aus diesem timestamp wieder ne uhrzeit macht?
#10
Tarzipan,
Doch Diese Funktion nannte ich einige Beiträge weiter oben.
Ersetze in meinem ergänztem Script:
PHP-Code:
$writetime time($dateline"h.m"); 
durch:
PHP-Code:
$writetime date($dateline"H.i"); 

Hiermit ließt du die Zeit aus.

Mfg Garlant
Ich gebe keinen Support per Messenger oder PN!