Forum

Moderiert von: stefan, spinne
Forum: OPN und andere CMS
Sie schreiben eine Antwort zum Thema: date in OPN?
Gehe zu: OpenPHPNuke - das Open Source CMS Forum Index


über den Beitrag: Auch anonyme Benutzer können in diesem Forum neue Themen eröffnen und Antworten schreiben.
Benutzername:
Nachrichtensymbol:
                                                                                                                       

more...


HTML : An
BBCode : An
 


Klicken Sie auf die Smilies, um diesen in Ihre Nachricht einzufügen:

Very Happy Very Happy Smile Smile Sad Sad Surprised Surprised
Confused Confused Cool Cool Laughing Laughing Mad Mad
Razz Razz Embaressed Embaressed Crying (very sad) Crying (very sad) Evil or Very Mad Evil or Very Mad
Rolling Eyes Rolling Eyes Wink Wink Another pint of beer Another pint of beer ToolTimes at work ToolTimes at work
I have an idea I have an idea

more... 
Einstellungen:







 
Sicherheits-Code
Sicherheits-Code
Neu laden

Thema im Überblick

Autor
Gast
Unregistrierter Benutzer
date in OPN?

Geschrieben: 20.08.2006 00:17

Mann,
das war echt eine harte Nuss!!!

Die zweistufige Nummer war mir zu aufwändig, denn dann bin ich auch noch in der Skriptprogrammierung drinnen - und das ist mir im Moment etwas zuviel.

Hier mein Code - zur freien Verwendung, für jeden der's haben möchte:
select sid, time as 'time_________',
substr(time,1,2) as century,
substr(time,3,2) as year,
substr(time,6,2) as month,
substr(time,9,2) as day,
substr(time,12,2) as hour,
substr(time,15,2) as minute,
substr(time,18,2) as second,
                /*century*/
floor(146097*(substr(time,1,2))/4)+
                /*year*/
                floor((1461*(case when substr(time,6,2) <= 2
                then substr(time,3,2)-1
                                                             else substr(time,3,2)
                                                  end))/4)+
/*month*/
                floor((153*((case when substr(time,6,2) > 2
                then substr(time,6,2)-3
                                                             else substr(time,6,2)+9
                                                  end))+2)/5)+
                /*day*/
((substr(time,9,2))+1721119) +
                /*time: h,m,s*/
((substr(time,12,2) * 3600) +
(substr(time,15,2) * 60) +
(substr(time,18,2)))/100000 as wdate
from nuke_stories;

Eigentlich ist nur die wdate-Spalte wichtig, der Rest ist nur zur Dokumentation bzw. Kontrolle vorhanden.

Es gab einen Punkt, der mir nicht ganz klar war:
               if ($month>2)
{
                    $month -= 3;
               } else {
                     $month += 9;
                     if ($year) {
                          $year--;
                     }
else {$year = 99;
                          $century--;
                     }
                }

Habe ich das richtig interpretiert? Wenn kein Jahr übergeben wurde, dann nimm' 99 an, falls schon, dann ziehe ein Jahr ab? Falls ja, dann ist es zumindest mir egal - ich habe keine Datümer aus dem alten Millenium.

Ciao,
Boby
[addsig]

[ Diese Nachricht wurde bearbeitet von: Boby am 20.08.2006 00:36 (Originaldatum 20.08.2006 00:17) ]

Zitieren Druckerfreundliche Darstellung nach oben
xweber
Registriert: 22.08.2001
Beiträge: 1496


Sende eine Private Nachricht an xweber
date in OPN?

Geschrieben: 16.08.2006 23:15

das Datum (incl. Uhrzeit) wird in eine Zahl umgewandelt.

Links vom Komma ist das Datum (dateToDays)
Rechts vom Komma ist die Uhrzeit (timeToSave)

Mal so aus dem Kopf...

Alex



X.W.E.B.E.R.: eXperimental Worker Engineered for Battle and Efficient Repair

Auch der Mann, der den Berg versetzt hat, hat mit einem kleinen Stein angefangen.

Zitieren Druckerfreundliche Darstellung nach oben
Gast
Unregistrierter Benutzer
date in OPN?

Geschrieben: 16.08.2006 00:29

Welche der ca. 200 functions genau meinst Du denn?
Ich hab' mal die 1800 loc über den Schirm flitzen lassen...

Hatte schon die "DaysToDate" in Verdacht, erschien mir dann aber nicht plausibel (was wird da eigentlich alles drin berechnet???).
Dann habe ich mir die vielversprechende Function ConvertDateToDBDate angesehen. Aber dort wird nur mit Unix-Zeitstempel gerechnet.

Bitte noch um "Verfeinerung" des Suchzielgebiets - danke.
Boby
[addsig]

Zitieren Druckerfreundliche Darstellung nach oben
xweber
Registriert: 22.08.2001
Beiträge: 1496


Sende eine Private Nachricht an xweber
date in OPN?

Geschrieben: 15.08.2006 23:47

in opn benutzen wir ein "eigenes" Datumsformat. Das hat div. Gründe (u.a. sind wir dadurch auch zwischen verschiedenstens SQL Dialekten in der Lage ein Datum zu speichern).

mit einen mysql boardmitteln das nachstellen... hmm... denkbar aber nicht einfach. Die wesentliche Berechnung ist in der opn_date class.

Imho solltest du über ein 2-stufigen import nachdenken. Du lässt dann mit einem php (mini) script dir die aufbereiteten statements erstellen und importierst dann diese.

Alex


Zitieren Druckerfreundliche Darstellung nach oben
Gast
Unregistrierter Benutzer
date in OPN?

Geschrieben: 15.08.2006 22:49

Hi,
ich bin gerade dabei diverse Datenbestände aus meiner PHPNuke-Installation nach OPN zu migrieren. Dazu mache ich mir diverse Selects, erzeuge mit TOAD for MySQL die Insert-Statements und spiele diese auf der neuen DB ein.

Das geht relativ flott, allerdings stehe ich jetzt von einem Problem:
Das DATE-Format in OPN sieht mir etwas eigenartig aus...
Es ist weder ein aufbereitetes Format, noch ein unix_timestamp - sondern irgendetwas anderes. Ich würde nur ungerne sämtliche Datümer in meiner Datenbank verlieren.

Bitte um einen Tipp, wie ich ein "normales Datum" (z.B. '15.08.2006 21:35:50') in das OPN-Format umwandeln kann. Ich brauche keine fertige Lösung, sondern nur einen Hinweis bzw. die Berechnungsformel. Ich habe mich zwar durch den Code gehantelt, aber bin nicht wirklich schlauer geworden (OPN ist so streng geschachtelt, dass man als Laie sich dauernd im Kreis dreht) - programmiertechnisch ist das natürlich die Wucht (selten sowas gut strukturiertes gesehen).

Einzige Bedingung für den erhofften Vorschlag: Das ganze sollte mit MySQL-Bordmitteln (functions!) machbar sein, sonst kann ich meinen Weg vergessen. Sollte das klappen, kann ich die Scripts nebst einer kurzen Anleitung gerne der Allgemeinheit zur Verfügung stellen.

Danke,
Boby
[addsig]

Zitieren Druckerfreundliche Darstellung nach oben