8
votes

Créer 3 chiffres de milliseconde avec php

J'ai un numéro de 13 chiffres et je souhaite créer une date et une heure avec Inclure le code d'exemple Milisecond

est comme celui-ci est mon script PHP xxx

Le résultat est comme Ceci 2012: 02: 10 15: 44: 55.xxx =====> XXX est à 3 chiffres Milisecondes que je veux montrer.

et comment inclure avec 3 chiffres Miliseconde après H: I: S

S'il vous plaît aidez-moi .....


0 commentaires

5 Réponses :


5
votes

Il suffit de couper les deux derniers caractères: xxx


2 commentaires

Sur mon système, qui évalue les "2025-12-10 22: 17: 55.0000" (PHP 5.3.6 sur Ubuntu)


Ceci est mon script PHP $ MIL = 1328910295939; $ secondes = $ mil / 1000; $ showdate = date ('y: m: d h: i: s', secondes de dollars); echo "$ showdate"; Le résultat est comme ceci 2012: 02: 10 15:44:55 et comment inclure avec 3 chiffres Miliseconde après H: I: S



4
votes

Voici une fonction qui le fera avec précision (en arrondissant, pas de coupure): xxx

explication:

Microtime () renvoie 2 numéros sous forme 1 chaîne, délimitée par un espace. Le 2e numéro est la quantité de secondes depuis l'époque UNIX et le 1er numéro correspond à la quantité de microsecondes depuis le 2e numéro. Fondamentalement, le premier nombre est la quantité de microsecondes exprimée dans un format de précision 8 (0,0000000000) et la trailing 0s ne sont jamais coupées.

Nous tournons sur une précision de 3 (0,00) et coupé la Diriger 0, et annoncez-le à l'horodatage réel.

Pour une raison quelconque, la DOC PHP pour vous, microsecondes, ne semble pas être effectivement prise en charge. Je reçois 0.000 chaque fois lorsque vous utilisez cette méthode. J'ai donc eu recours à Microtime () comme solution de sauvegarde.


2 commentaires

Exemple de code est comme celui-ci ceci est mon script php $ mil = 1328910295939; $ secondes = $ mil / 1000; $ showdate = date ('y: m: d h: i: s', secondes de dollars); echo "$ showdate"; Le résultat est comme ceci 2012: 02: 10 15: 44: 55.xxx ====> XXX est à 3 chiffres Milisecondes que je veux montrer.


Le format u est pris en charge pour les dates contenant des microsecondes (E.G. DateTime instances). La fonction DATE () fonctionne uniquement avec des horodatages entier, donc ne connaît pas la fraction secondaire.



10
votes

Que diriez-vous de quelque chose comme ça? XXX

Tadaa!

Il devrait être assez rapide aussi.

En outre, il s'agit de la sortie: 2012: 02: 10 15: 44: 55.939 - Pourquoi n'utilisez-vous pas - pour délimiter la partie de date me bat.


4 commentaires

Merci mec ..... Grand travail. Vous êtes le meilleur, car IAM recherche une semaine d'Internet n'a pas de solution.


Bonjour Westie J'avais toujours un problème que l'heure était de 2 heures plus rapide ... Exemple 22: 07: 45.434 Une heure devrait être de 20 heures.


C'est un problème avec votre serveur - vous devrez définir le fuseau horaire.


@Westie devrait quitter Pad $ reste avec des zéros s'il a moins de 3 chiffres. Par exemple, si $ mil = 1328910295039 , la sortie doit être 2012: 02: 10 21: 44: 55.039 , pas 2012: 02: 10 21:44 : 55.39 .



1
votes
$t = 1328910295939;
echo date('Y-m-d H:i:s.', substr($t, 0, -3)) . substr($t, -3);
Output: 2012-02-10 16:44:55.939  (it depends on the timezone)

0 commentaires

0
votes

Parce que ces réponses étaient toutes assez amusantes dans leur complexité, voici une autre réponse em> pour la future postérité qui utilise le code d'origine de l'Asker et ne traite pas les nombres en tant que chaînes.

1328910295939
1328910295
939
2012:02:10 16:44:55.939


0 commentaires