PHP microtime to MySQL timestamp: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
{{exclaim}} Lose the accuracy after conversion. Microtime ex: 1426299057.8639 will lost the numeric after point (.8639) after saved to {{kbd | key = TIMESTAMP}} type ex: 2015-03-14 10:10:57 (equals to 1426299057)
{{exclaim}} Warning: It will lose the accuracy after conversion. Microtime ex: 1426299057.8639 will lost the numeric after point (.8639) after saved to {{kbd | key = TIMESTAMP}} type ex: 2015-03-14 10:10:57 (equals to 1426299057)


1. Check the MySQL server's current time zone: {{kbd | key =<nowiki>show variables like '%time_zone%';</nowiki>}}<ref>[http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html MySQL :: MySQL 5.7 Reference Manual :: 10.6 MySQL Server Time Zone Support]</ref>. It's also the timezone which the data with {{kbd | key = TIMESTAMP}} type stored. example output:  
1. Check the MySQL server's current time zone: {{kbd | key =<nowiki>show variables like '%time_zone%';</nowiki>}}<ref>[http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html MySQL :: MySQL 5.7 Reference Manual :: 10.6 MySQL Server Time Zone Support]</ref>. It's also the timezone which the data with {{kbd | key = TIMESTAMP}} type stored. example output:  

Revision as of 16:53, 19 May 2017

Icon_exclaim.gif Warning: It will lose the accuracy after conversion. Microtime ex: 1426299057.8639 will lost the numeric after point (.8639) after saved to TIMESTAMP type ex: 2015-03-14 10:10:57 (equals to 1426299057)

1. Check the MySQL server's current time zone: show variables like '%time_zone%';[1]. It's also the timezone which the data with TIMESTAMP type stored. example output:

Variable_name Value
system_time_zone CST
time_zone SYSTEM ## my SYSTEM timezone is Asia/Taipei

2. PHP codes (online demo)

//set the current timezone
date_default_timezone_set("Asia/Taipei");

$microtime = microtime(true); 
//1426299057.8639

list($second, $numeric_after_point) = explode(".", $microtime);
//$second: 1426299057
//$numeric_after_point: 8639

$timestamp = date('Y-m-d H:i:s', $second);
//$timestamp: 2015-03-13 10:10:57

references