如何使用PHP将MySQL时间转换为UNIX时间戳?


74

关于“ UNIX时间戳到MySQL时间”,有很多问题要问。我需要相反的方式,是的...知道吗?

Answers:



55

您可以UNIX_TIMESTAMP直接从查询中获取mysql的功能,下面是一个示例:

SELECT UNIX_TIMESTAMP('2007-11-30 10:30:19');

同样,您可以在date / datetime字段中传递:

SELECT UNIX_TIMESTAMP(yourField);

如果该字段是TIME字段,仅DATE,DATETIME或带日期,月份和年份的字符串,则该方法将不起作用
Fabien Henon 2015年

11

从我的另一篇文章中,得到一个unixtimestamp:

$unixTimestamp = time();

转换为mysql datetime格式:

$mysqlTimestamp = date("Y-m-d H:i:s", $unixTimestamp);

获取一些MySQL时间戳:

$mysqlTimestamp = '2013-01-10 12:13:37';

将其转换为unixtimestamp:

$unixTimestamp = strtotime('2010-05-17 19:13:37');

...将其与一个或多个时间进行比较,以查看用户是否输入了实际时间:

if($unixTimestamp > strtotime("1999-12-15") && $unixTimestamp < strtotime("2025-12-15"))
{...}

Unix时间戳也更安全。在检查(例如)之前的范围检查之前,可以执行以下操作检查传递的url是否有效:

if(ctype_digit($_GET["UpdateTimestamp"]))
{...}

7
$time_PHP = strtotime( $datetime_SQL );

2
为什么这可以回答问题的一些解释会使答案更有用。(我知道那里可能还有很多其他的单行答案,但是还没有添加)
ChrisF

5
问题是如何将$ mysql_timestamp转换为$ php_timestamp,答案是“ strtotime”做到了,如图所示。有什么要解释的?
psycho brm

4

而不是strtotime您应该DateTime与PHP一起使用。您还可以通过以下方式查看时区:

$dt = DateTime::createFromFormat('Y-m-d H:i:s', $mysqltime, new DateTimeZone('Europe/Berlin'));
$unix_timestamp = $dt->getTimestamp();

$mysqltime属于MySQL Datetime类型,例如2018-02-26 07:53:00


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.