首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP日期格式转换

PHP日期格式转换
EN

Stack Overflow用户
提问于 2010-02-25 16:57:27
回答 4查看 2.8K关注 0票数 2

这就是我所拥有的:

代码语言:javascript
复制
$dateFormat = 'M d, Y';
$dateString = 'January 23, 2010';

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

代码语言:javascript
复制
$newFormattedDate = date('Y-m-d', $timestamp);

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

如何将$timestamp设置为与date函数一起使用的相应值?

编辑:我需要它在Linux和Windows环境中工作。

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

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

EN

回答 4

Stack Overflow用户

发布于 2010-02-25 17:26:49

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

代码语言:javascript
复制
$dt = date_create_from_format('M d, Y', 'January 23, 2010');
echo date_timestamp_get($dt);

或使用OOP表示法

代码语言:javascript
复制
$dt = DateTime::createFromFormat('M d, Y', 'January 23, 2010');
echo $dt->getTimestamp();

请注意,虽然DateTime在PHP5.3中可用,但上面使用的方法不可用,虽然您可以用->format('U')模拟->getTimestamp(),但createFromFormat()没有简单的解决方法

另一种选择是使用Zend Framework中的Zend_Date

代码语言:javascript
复制
$date = new Zend_Date('Feb 31, 2007', 'MM.dd.yyyy');
echo $date->get(Zend_Date::TIMESTAMP);
票数 7
EN

Stack Overflow用户

发布于 2010-02-25 17:00:42

使用strptimemktimestrftime

代码语言:javascript
复制
$ftime = strptime($dateString, $dateFormat);
$timestamp = mktime($ftime['tm_hour'], $ftime['tm_min'], $ftime['tm_sec'], 1,
                    $ftime['tm_yday'] + 1, $ftime['tm_year'] + 1900);

echo strftime('Y-m-d', $timestamp);

请注意,strptime并未在Windows平台上实现。

注意,mktime的参数有些不寻常-- strptime返回一年中的某一天(在0-365之间,包括0-365),而不是一年中的某一天和一个月,所以我们将mktime参数设置为1,并在一年中的某一天加上1。此外,对于返回的年份值,strptime返回自1900年以来的年份,因此在将其传递给mktime之前,我们需要在年份的基础上加上1900。

此外,在将$ftime传递到mktime之前,您可能需要检查它是否为FALSE。返回FALSEstrptime表示根据$dateFormat,输入的$dateString不是有效的日期格式。

票数 3
EN

Stack Overflow用户

发布于 2010-02-25 21:05:43

根据我对这个问题的理解以及PHP中提供了什么,您需要在某处放松您的期望。

一个“简单”的解决方案(已经打折了)是强制使用PHP 5.3和其中提供的工具。

一种不太简单的解决方案是将这些新增内容移植到PHP-land (具有PHP 4兼容性,祝您好运)。

另一种探索途径是考虑strtotime对您不起作用的情况,并解决这些限制。

您的格式字符串的变化范围有多大?有可能提出一种解决方案,将格式字符串映射到函数/方法(进行日期解析),前提是它们受到很大的限制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2332740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档