为什么date()没有正确地将YYMMDDHHMM转换为MySQL可接受的日期格式?

时间:2015-11-03 06:40:50

标签: php mysql date timestamp

我想带一个字符串:

1511030830 // YYMMDDHHMM

并创建一个MySQL时间戳,如:

2015-11-03 08:30:00

然而,当尝试这个时它不起作用:

$string='1511030830';
$date=date("Y-m-d H:i:s", $string);
var_dump($date);exit;

因为以上输出:

string(19) "1970-01-01 02:00:00"

我使用的是PHP 5.5.30版本

php.ini中是否有某种设置会影响这个?

4 个答案:

答案 0 :(得分:1)

您可以使用DateTime :: createFromFormat:

<?php
$date = DateTime::createFromFormat('ymdHi', '1511030830');
var_dump($date->format("Y-m-d H:i:s"));

那应该做你需要的。

http://php.net/manual/en/datetime.createfromformat.php

答案 1 :(得分:1)

只需使用DateTime类的PHP,如

$date = DateTime::createFromFormat("ydmhi","1511030830");
echo $date->format('Y-m-d H:i:s') . "\n";

Demo

答案 2 :(得分:0)

使用MySQL str_to_date

SELECT str_to_date(1511030830,'%y%d%m')

答案 3 :(得分:0)

请检查php version一次。我在服务器5.5.18和本地5.6.11

中的当前版本

我只使用你的代码。工作正常

$string='1511030830';
$date=date("Y-m-d H:i:s", $string);
var_dump($date);exit;

输出:

string(19) "2017-11-18 10:47:10"

请参阅演示here

$timestamp = 1511030830;
echo gmdate("Y-m-d H:i:s", $timestamp);//2017-11-18 18:47:10

gmdate() here

的演示