这是我的:
$dateFormat = 'M d, Y';
$dateString = 'January 23, 2010';
我需要的是 $dateString
的时间戳,所以我可以这样做:
$newFormattedDate = date('Y-m-d', $timestamp);
我尝试使用 strtotime
函数,但它试图找出格式本身,但并不总是有效。在我的情况下,我知道日期字符串和日期格式。
如何将 $timestamp
设置为适当的值以用于 date
功能?
编辑:我需要它在 Linux 和 Windows 环境中工作。
编辑:解决方案必须支持 PHP 4 或更高版本
编辑:MySQL 有一个名为 STR_TO_DATE
的函数它采用日期字符串和日期格式并返回 Y-m-d
格式的日期字符串。任何等效的 php 函数也适用于我。
最佳答案
从 PHP5.3 开始,您可以使用 DateTime API
$dt = date_create_from_format('M d, Y', 'January 23, 2010');
echo date_timestamp_get($dt);
或使用 OOP 符号
$dt = DateTime::createFromFormat('M d, Y', 'January 23, 2010');
echo $dt->getTimestamp();
请注意,虽然 DateTime
在 PHP < 5.3 中可用,但上面使用的方法不可用,而您可以使用 -> 模拟
,->getTimestamp()
format('U')createFromFormat()
另一种方法是使用 Zend_Date
来自 Zend 框架:
$date = new Zend_Date('Feb 31, 2007', 'MM.dd.yyyy');
echo $date->get(Zend_Date::TIMESTAMP);
关于PHP日期格式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2332740/