Les Snippets

Connexion

Transformer un Stamp vers une date et vice versa

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 26/03/2006 00:06:17 et initié par EBArtSoft [Liste]
Date de mise à jour : 30/03/2006 17:34:31
Vue : 12877
Catégorie(s) : Date & Heure, Trucs & Astuces, Algorithme
Langages dispo pour ce code :
- VB6, VBA
- PHP 3, PHP 4, PHP 5
- SQL, SQL 2005
- VB6, VBA



Langage : VB6 , VBA
Date ajout : 26/03/2006
Posté par EBArtSoft [Liste]
DateMAJ : 26/03/2006

Const DTS_START_YEAR = 1970
Const DTS_START_MNTH = 1
Const DTS_START_DAY = 1
Const DTS_STRAT_RBY = 2

'===============================\
'   RENVOI LE MARQUAGE ACTUEL    \
'=================================\
Public Function NowStamp() As Long
    NowStamp = DateToStamp(Now)
End Function

'===============================\
'  CONVERTI UN MARQUAGE EN DATE  \
'=================================\
Public Function StampToDate(ByVal Value As Long) As String
    Dim dys   As Integer
    Dim scs   As Integer
    Dim mns   As Integer
    Dim hrs   As Integer
    Dim d     As Integer
    Dim m     As Integer
    Dim b     As Integer
    Dim n     As Integer
    Dim Y     As Integer
    Dim mxd() As Byte
    '--------------------------
    ReDim mxd(1 To 12)
    '--------------------------
    mxd(1) = 31
    mxd(2) = 28
    mxd(3) = 31
    mxd(4) = 30
    mxd(5) = 31
    mxd(6) = 30
    mxd(7) = 31
    mxd(8) = 31
    mxd(9) = 30
    mxd(10) = 31
    mxd(11) = 30
    mxd(12) = 31
    '--------------------------
    scs = (Value Mod 60)
    mns = (Value \ 60) Mod 60
    hrs = (Value \ 3600) Mod 24
    dys = (Value \ 86400)
    '--------------------------
    b = DTS_STRAT_RBY
    d = DTS_START_DAY
    m = DTS_START_MNTH
    Y = DTS_START_YEAR
    While dys > 0
        d = d + 1
        n = mxd(m)
        dys = dys - 1
        If (b = 0) And (m = 2) Then n = (n + 1)
        If (d > n) Then
            d = 1
            m = m + 1
            If (m > 12) Then
                m = 1
                b = b - 1
                Y = Y + 1
                If (b < 0) Then b = 3
            End If
        End If
    Wend
    '--------------------------
    StampToDate = DateSerial(Y, m, d) & " " & TimeSerial(hrs, mns, scs)
    '--------------------------
End Function

'================================\
'  CONVERTI UNE DATE EN MARQUAGE  \
'==================================\
Public Function DateToStamp(ByVal Value As Date) As Long
    Dim scs   As Integer
    Dim mns   As Integer
    Dim hrs   As Integer
    Dim dow   As Integer
    Dim yrs   As Integer
    Dim mth   As Integer
    Dim dys   As Integer
    Dim d     As Integer
    Dim m     As Integer
    Dim b     As Integer
    Dim n     As Integer
    Dim Y     As Integer
    Dim mxd() As Byte
    '--------------------------
    ReDim mxd(1 To 12)
    '--------------------------
    mxd(1) = 31
    mxd(2) = 28
    mxd(3) = 31
    mxd(4) = 30
    mxd(5) = 31
    mxd(6) = 30
    mxd(7) = 31
    mxd(8) = 31
    mxd(9) = 30
    mxd(10) = 31
    mxd(11) = 30
    mxd(12) = 31
    '--------------------------
    scs = Second(Value)
    mns = Minute(Value)
    hrs = Hour(Value)
    dow = Day(Value)
    mth = Month(Value)
    yrs = Year(Value)
    If yrs <= 1969 Then Err.Raise 380
    If yrs >= 2040 Then Err.Raise 380
    '--------------------------
    b = DTS_STRAT_RBY
    d = DTS_START_DAY
    m = DTS_START_MNTH
    Y = DTS_START_YEAR
    Do
        If (Y = yrs) And (m = mth) And (d = dow) Then Exit Do
        d = d + 1
        n = mxd(m)
        dys = dys + 1
        If (b = 0) And (m = 2) Then n = (n + 1)
        If (d > n) Then
            d = 1
            m = m + 1
            If (m > 12) Then
                m = 1
                b = b - 1
                Y = Y + 1
                If (b < 0) Then b = 3
            End If
        End If
    Loop
    '--------------------------
    DateToStamp = scs + (mns * 60&) + (hrs * 3600&) + (dys * 86400)
    '--------------------------
End Function

Langage : PHP 3 , PHP 4 , PHP 5
Date ajout : 27/03/2006
Posté par malalam [Liste]

$timestamp = 1143410400;
$date = '2006/03/27';
echo $myDate = date ('d-m-Y', $timestamp); // transforme un timestamp $timestamp en une date de type dd-mm-yyy.
echo $myTimestamp = strtotime ($date); // transforme une date VALIDE en timestamp



Langage : SQL , SQL 2005
Date ajout : 19/04/2006
Posté par fabrice69 [Liste]

DECLARE @Variable AS DATETIME
DECLARE @VariableTS AS TIMESTAMP

SET @Variable = getdate()

SET @VariableTS = CONVERT(TIMESTAMP, @Variable);

SELECT 
 CONVERT(DATETIME, @VariableTS) AS VariableEnDate,
 @VariableTS AS VariableEnTS
;


Remarque :
Attention, cela fonctionne sous SQL Server.

Romelard Fabrice
Langage : VB6 , VBA
Date ajout : 29/09/2006
Posté par Renfield [Liste]
Public Function StampToDate(ByVal vnStamp As Long) As Date
    StampToDate = DateAdd("s", vnStamp, #1/1/1970#)
End Function
Public Function DateToStamp(ByVal vdDate As Date) As Long
    DateToStamp = DateDiff("s", #1/1/1970#, vdDate)
End Function

Snippets en rapport avec : Date, Transformation, Timedatestamp, Datetime



Codes sources en rapport avec : Date, Transformation, Timedatestamp, Datetime

{PHP} DATE COMPLETE EN FRANÇAIS
ce code php vous permettra d'afficher au format français et en toutes lettres de la date sur vos pag...

{Delphi} TRI DE CHIFFRE , DATE OU TEXT DANS UN TLISTVIEW
Exemple d'implémentation de tri dans un tlistview pour des dates, chiffres ou du texte...

{SQL} FAIRE UN COUNT ET GROUPER PAR DATE AVEC LA MÉTHODE FLOOR
Il m'est souvent arrivé de devoir faire un Count en groupant par date avec un champ datetime compren...

{Visual Basic, VB6, VB.NET, VB 2005} CALENDRIER DE MORET, "VRAI" CALENDRIER PERPÉTUEL
Un sujet qui se lit comme un livre d’histoire, programme sur les dates oblige. Une date comporte 4 é...

{Delphi} [UNITE] RANDDATE : FONCTION RANDRANGEDATE ET RANDOMDATE, GENERATRICES DE DATES ALEATOIRES
Bonjour a tous! voici deux fonctions qui vous seront peut etre utile et surtout qui vont vous app...

{PHP} FONCTION QUI ESSAIE DE RETOURNER UNE DATE VALIDE COMME ELLE PEUT...
Ce script permet de vérifier et de retourner un une date entrée manuellement par l'utilisateur. J'a...

{Visual Basic, VB6, VB.NET, VB 2005} TESTER LA VALIDITÉ D'UNE DATE
petit algorithme qui teste si un nombre correspond à une date valide. Le format du nombre saisi doit...

{Assembleur} [FASM]-DATE ET HEURE
Tiré du code de x5man, j'en ai fait une version utilisable avec Flat Assembler et les API Windows ;)...

{PHP} FONCTIONS DE MODIFICATION DE DATES
Ces fonctions servent a modifier le format des dates genre dd/mm/yyyy en yyyy-mm-dd; jj/mm/aaaa hh:m...

{PHP} FONCTION FORMATE LA DATE ET L'HEURE POUR QU'ELLES SOIENT ENREGISTRABLE DANS MYSQL
Formater la date et l'heure pour qu'elles soient enregistrables dans MySQL...