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 : 24
    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

  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 : 48
    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 : 24
    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

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    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 497
    Points : 12 600
    Points
    12 600
    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 497
    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 497
    Points : 12 600
    Points
    12 600
    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 : 48
    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 : 24
    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

  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 : 24
    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 : 210
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 : 214
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);
    }
    ?>

  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 : 48
    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 : 24
    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 ?

  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 : 48
    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 : 24
    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 : 200
Taille : 7,1 Ko

    Si non, pour convertir en timestamp c'est ça : $stamp2 = strtotime($datechoisit);

  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 : 24
    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);
    }
    ?>

  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 : 48
    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 : 24
    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.

  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 : 48
    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, 12h56
  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, 10h32
  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, 15h25
  4. ajoute une date de reunion pour plusieur enregistrement
    Par popofpopof dans le forum VBA Access
    Réponses: 9
    Dernier message: 10/08/2007, 17h08
  5. Réponses: 1
    Dernier message: 30/06/2006, 17h01

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