Quel type de données dois-je utiliser pour enregistrer unix_timestamp
valeur (MySQL)?
le type est entier comme:
int(11)
est bon pour l'indexation et des conditions comme > < =
Vous souhaitez utiliser le type de données TIMESTAMP .
Il est stocké en tant que valeur Epoch, mais MySQL affiche la valeur comme 'AAAA-MM-JJ HH: MM: SS'.
MySql DateTime le type de données stocke la date au format 'AAAA-MM-JJ HH: MM: SS' avec une plage de '1000-01-01 00:00:00' à '9999-12-31 23:59:59 '.
MySql TIMESTAMP type de données stocke la date au format 'YYYY-MM-DD HH: MM: SS' avec une plage de '1970-01-01 00:00:01' UTC à '2038-01- 19 03:14:07 'UTC.
nix TIMESTAMP est le nombre de secondes écoulées depuis 1970-01-01
, Si vous voulez stocker l'horodatage unix dans mysql
db, vous devez utiliser int(11)
avec l'attribut UNSIGNED
(pour n'autoriser que les nombres positifs), et si vous souhaitez enregistrer le nombre de microsecondes, vous devez utiliser bigint(20)
, ..
Si vous souhaitez obtenir le unixtimestamp
dans un format lisible dans votre requête de sélection, vous pouvez utiliser
SELECT FROM_UNIXTIME(CAST(yourtable.start_time as UNSIGNED)) as date_time
Si vous utilisez php
, vous pouvez utiliser:
$unixtimestamp= time();//1544619186
echo(date("Y-m-d", $unixtimestamp));//2018-12-12
Si vous voulez afficher le datetime en utilisant fuseau horaire local in Javascript utilisez cette fonction
function timeConverter(UNIX_timestamp){
var date = new Date(UNIX_timestamp*1000);
var year = date.getFullYear();
var month = ("0"+(date.getMonth()+1)).substr(-2);
var day = ("0"+date.getDate()).substr(-2);
var hour = ("0"+date.getHours()).substr(-2);
var minutes = ("0"+date.getMinutes()).substr(-2);
var seconds = ("0"+date.getSeconds()).substr(-2);
return year+"-"+month+"-"+day+" "+hour+":"+minutes+":"+seconds;
}
console.log(timeConverter(value));// 2018-14-12 13:11:33
(Dans ce cas, le serveur doit renvoyer le unixTimestamp tel quel: SELECT yourtable.start_time as date_time
)