IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP] Ajouter une heure précise à une DATE provenant d'un formulaire


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut [PHP] Ajouter une heure précise à une DATE provenant d'un formulaire
    Bonjour , j'envoie une date par formulaire via fichier txt et j'aimerais fixer la date à 6h , comment faire ?
    je veux ça en gros :

    $ajd = $madate à 6h

    Et j'aimerais également avoir un truc du genre :

    $hier = $madate -1 jour à 6h



    Format de ma date : Année-Mois-Jour
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    salut

    lis la doc : DateTime

  3. #3
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    déjà fait , rien trouvé.
    Si je pose ma question ici , c'est que j'ai déjà cherché et rien trouvé du coup
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par theocbr Voir le message
    déjà fait , rien trouvé.
    Si je pose ma question ici , c'est que j'ai déjà cherché et rien trouvé du coup
    Bah, faut un peu chercher quand même, c'est écrite en long et large ici , allez je suis de bonne humeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $date_six_heures = DateTime::createFromFormat('Y-m-d H:i', $ajd .' 06:00');
    $date_six_heures->sub(new DateInterval('P1D'));
    echo $date->format('Y-m-d') . "\n";

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Maintenant, j'ai aussi une préférence pour la Lib Carbon , plus complète et mieux documenter à mon sens, mais ce n'est que mon avis.

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par theocbr Voir le message
    déjà fait , rien trouvé.
    Si je pose ma question ici , c'est que j'ai déjà cherché et rien trouvé du coup
    Tu te payes notre tête ?

    D'après la doc qui est très très difficile à lire... ça doit être dû au fait qu'elle soit en français
    ce n'était pas à ta portée 2 pauvres lignes de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $auj = (new DateTimeImmutable())->setTime(6, 0);
    $hier = $auj->modify('-1 day');
    Arrêtes tes études et bifurque vers la charcuterie, tu y seras plus à l'aise

  7. #7
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Merci MaitrePylos !

    Citation Envoyé par rawsrc Voir le message

    Arrêtes tes études et bifurque vers la charcuterie, tu y seras plus à l'aise
    T'es bien insolent derrière ton écran toi
    Et dommage pour toi je suis pas en étude pour le WebDev , mais pour la POO , bisous
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  8. #8
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Si non j'ai cette erreur :
    Nom : yy.PNG
Affichages : 182
Taille : 7,4 Ko


    Donc j'ai ajouté :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $datechoisit = $newDate->format('Y-m-d H:i');

    et j'ai cette erreur :
    Nom : erreur.PNG
Affichages : 186
Taille : 10,4 Ko

    Code complet si besoin :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <!DOCTYPE html> 
    <?php
    //error_reporting(0); // Désactiver le rapport d'erreurs
    $tableau = unserialize(file_get_contents('dateexport.txt'));// Récupération de la date choisit
    $datechoisit = $tableau['dateexport'];
    $datechoisit = (new DateTimeImmutable())->setTime(6, 0);
    $datechoisit = $newDate->format('Y-m-d H:i');
    $jouravant = $datechoisit->modify('-1 day');
     
     
    // CONNEXION BDD
    $mysqli = new mysqli("localhost", "anniv", "anniversaire", "AUTOMATES");
    if ($mysqli->connect_errno) {
    printf("echec de la connexion : %s\n", $mysqli->connect_error);
    exit();
    }
    if(!empty($tableau))
    {
    $sql = "TRUNCATE TABLE AUTOMATES.EXPORT_TIMERSIMA"; //VIDER LA TABLE EXPORT_TIMERSIMA
    $result1 = $mysqli->query($sql);
    // COPIER DONNEES DE HIER 6h à AUJOURD'HUI 6h SIMAPROD DANS EXPORT_TIMERSIMA SELON LA DATE CHOISIT :
    $sql2 ="INSERT INTO AUTOMATES.EXPORT_TIMERSIMA SELECT * FROM AUTOMATES.SIMAPROD WHERE TIMER BETWEEN '$jouravant' AND '$datechoisit'"; 
    $result2 = $mysqli->query($sql2);
    }
    ?>
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    C'est olé-olé ton bout de code :
    tiens une version corrigée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $tableau    = unserialize(file_get_contents('dateexport.txt'));// Récupération de la date choisie
    $date       = (new DateTimeImmutable($tableau['dateexport']))->setTime(6, 0); // je présume que la date est au format AAAA-MM-DD
    $date_str   = $date->format('Y-m-d H:i');
    $jour_avant = $date->modify('-1 day');
    Sinon, pense aux rillettes quand tu codes même en POO, ça passera mieux

  10. #10
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Merci , j'ai une question étant donné que TIMER est un timstamp dans ma bdd, je dois convertir en timestamp ou bien c'est automatique ?
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    ta question n'est pas claire.
    Si c'est un timestamp, il doit être géré par la base de données, non ?
    Sinon, il faudra le formater correctement en PHP avant de la présenter pour persistance.

  12. #12
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    D'accord je cherche de mon côté, si non :

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $jour_avant = $date->modify('-1 day');
     
    echo $jour_avant;

    n'affiche rien, à part cet erreur :
    Nom : u.PNG
Affichages : 172
Taille : 7,1 Ko

    Si non, pour convertir en timestamp c'est ça : $stamp2 = strtotime($datechoisit);
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  13. #13
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    EDIT :


    J'ai fais ça , mais là c'est pas un jour que ça enlève mais 1 heure... :c
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <!DOCTYPE html> 
    <?php
    //error_reporting(0); // Désactiver le rapport d'erreurs
    $tableau    = unserialize(file_get_contents('dateexport.txt'));// Récupération de la date choisie
     
    $date       = (new DateTimeImmutable($tableau['dateexport']))->setTime(6, 0); 
    $datechoisit   = $date->format('Y-m-d H:i'); // Changement du format
    $jour_avant =date("Y-m-d",strtotime($datechoisit." -1 day")); // J-1 Date choisit 
     
     
    $stamp2 = strtotime($datechoisit);
    $stamp1 = strtotime($jour_avant);
     
     
    echo $stamp2;
     
     
    // CONNEXION BDD
    $mysqli = new mysqli("localhost", "anniv", "anniversaire", "AUTOMATES");
    if ($mysqli->connect_errno) {
    printf("echec de la connexion : %s\n", $mysqli->connect_error);
    exit();
    }
    if(!empty($tableau))
    {
    $sql = "TRUNCATE TABLE AUTOMATES.EXPORT_TIMERSIMA"; //VIDER LA TABLE EXPORT_TIMERSIMA
    $result1 = $mysqli->query($sql);
    // COPIER DONNEES DE HIER 6h à AUJOURD'HUI 6h SIMAPROD DANS EXPORT_TIMERSIMA SELON LA DATE CHOISIT :
    $sql2 ="INSERT INTO AUTOMATES.EXPORT_TIMERSIMA SELECT * FROM AUTOMATES.SIMAPROD WHERE TIMER BETWEEN '$stamp1' AND '$stamp2'"; 
    $result2 = $mysqli->query($sql2);
    }
    ?>
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  14. #14
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu ne peux pas faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $jour_avant = $date->modify('-1 day');
    echo $jour_avant;
    $jour_avant est un objet.

    Par contre tu peux le formater comme tu veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $jour_avant->format('Y-m-d H:i');
    Donc à l'insertion en base : tu dois juste présenter : $jour_avant->format('Y-m-d H:i')
    Arrête avec strtotime ou date()... Garde l'approche objet : DateTime()

  15. #15
    Membre régulier Avatar de theocbr
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 206
    Points : 90
    Points
    90
    Par défaut
    Tes codes me crée toujours des erreurs incompréhensible , si tu y connais rien , dit le.
    Pour le moment tu m'a pas grandement aidé...
    Car je sais pas si t'es au courant strtotime permet de convertir en timestamp et il me faut du timestamp !

    Je ne demande pas de changer de format, je veux avoir le jour avant de la date qui se trouve dans un fichier txt.

    J'ai réussis moi même, merci quand même.
    “L’homme est la mesure de toute chose” Protagoras
    "Goutte après goutte l'eau finit par creuser le marbre"

    Pensez à mettre !
    Si un message vous a aidé , pensez à mettre !

    Mon Twitter
    Ma Veille Techno

  16. #16
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par theocbr Voir le message
    Tes codes me crée toujours des erreurs incompréhensible , si tu y connais rien , dit le.
    Pour le moment tu m'a pas grandement aidé...
    bah moi aussi je galère avec le PHP, qu'est-ce que tu crois ?
    Tu m'as démasqué sur une simple fonction de date, la vache ! Chapeau bas, mec !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inversion du jour et du mois d'une date provenant d'un formulaire.
    Par defluc dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/01/2014, 11h56
  2. [Dates] Affichage d'une date provenant de la base au format(jj-mm-aaaa)
    Par L'aigle de Carthage dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2008, 09h32
  3. [MySQL] Enregistrement erroné d'une date provenant d'un formulaire en base
    Par dedein84 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/01/2008, 14h25
  4. ajoute une date de reunion pour plusieur enregistrement
    Par popofpopof dans le forum VBA Access
    Réponses: 9
    Dernier message: 10/08/2007, 16h08
  5. Réponses: 1
    Dernier message: 30/06/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo