PHP日期格式转换

mat*_*tte 2 php date

这是我有的:

$dateFormat = 'M d, Y';
$dateString = 'January 23, 2010';
Run Code Online (Sandbox Code Playgroud)

我需要的是一个时间戳,$dateString所以我可以这样做:

$newFormattedDate = date('Y-m-d', $timestamp);
Run Code Online (Sandbox Code Playgroud)

我试图使用strtotime函数,但它试图找出格式本身,并不总是工作.在我的情况下,我知道日期字符串和日期格式.

如何设置$timestamp适当的值以与date函数一起使用?

编辑:我需要这个在Linux和Windows环境中工作.

编辑:该解决方案必须支持PHP 4或更高版本

编辑:MySQL有一个函数调用STR_TO_DATE,它采用日期字符串和日期格式,并返回Y-m-d格式化的日期字符串.php的任何等效函数也适用于我.

Gor*_*don 7

从PHP5.3开始,您可以使用DateTime API

$dt = date_create_from_format('M d, Y', 'January 23, 2010');
echo date_timestamp_get($dt);
Run Code Online (Sandbox Code Playgroud)

或者使用OOP表示法

$dt = DateTime::createFromFormat('M d, Y', 'January 23, 2010');
echo $dt->getTimestamp();
Run Code Online (Sandbox Code Playgroud)

请注意,虽然DateTime是在PHP <5.3中提供的,上面所用的方法是不和,而你可以模拟->getTimestamp()用->format('U'),对于没有简单的解决方法createFromFormat()

另一种方法是使用Zend_DateZend Framework:

$date = new Zend_Date('Feb 31, 2007', 'MM.dd.yyyy');
echo $date->get(Zend_Date::TIMESTAMP);
Run Code Online (Sandbox Code Playgroud)