首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自自定义字符串php的Unix时间戳

来自自定义字符串php的Unix时间戳
EN

Stack Overflow用户
提问于 2016-03-17 16:09:51
回答 4查看 971关注 0票数 0

我有一串信,然后是一个月,然后是一年:

代码语言:javascript
复制
$followUpDate = 'M12-16'

我打破了这个月和一年:

代码语言:javascript
复制
$datestrip = explode("-", $followUpDate);
$part1     = substr($datestrip[0], 1); // Gives Month
$part2     = $datestrip[1]; // Gives Year

现在我已经拆散了这个月和一年。我需要得到上述月份和年份的unix时间戳。

因此,对于这个例子,unix时间戳的结果应该是1480568400。

提前谢谢你!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-18 11:00:01

您可以使用DateTime::createFromFormat() (正如前面提到的其他答案)。然而,你必须注意一些次要的细节。

由于解析包含部分日期(仅指定月份和年份)的字符串,因此默认情况下使用当前时间设置其余字段(日、小时、分钟、秒)。很可能这不是你想要的。我想你想要这个月的开始(第一天,午夜)。

您可以通过在!前面添加一个感叹号( 格式字符串 )来实现这一点。它将所有日期组件重置为Unix时代(1970-01-01 00:00:00 UTC)。

另外,DateTime::createFromFormat()的第三个参数是要使用的时区。如果不传递它,PHP将使用php.ini中设置的默认时区,或者在最后一次调用date_default_timezone_set()时设置的时区(如果有的话)。这可能是你所需要的,也可能不是。

代码语言:javascript
复制
$followUpDate = 'M12-16';

// It seems like your timezone is US/Eastern (GMT+5 during the winter)
$timezone = new DateTimeZone('US/Eastern');

// Create a DateTime out of the provided string
// The "!" character in front of the format resets all the fields
// to the Unix epoch (1970-01-01 00:00:00 UTC) before parsing the string
$date = DateTime::createFromFormat('!\Mm-y', $followUpdate, $timezone);

// Display it; it displays 1480568400
echo($date->format("U"));
票数 1
EN

Stack Overflow用户

发布于 2016-03-17 16:19:41

看看strtotime

代码语言:javascript
复制
$timestamp = strtotime("2016-12");
echo date("Y-m-d", $timestamp); // prints 2016-12-01

记住你的时区设置;)

您还可以使用php的DateTime类寻找一种更易读的方法:

代码语言:javascript
复制
$date = new \DateTime();
$date->setDate(2016, 12, 01);
echo $date->format("Y-m-d"); // similiar to above
票数 0
EN

Stack Overflow用户

发布于 2016-03-17 16:26:58

做了一些假设,但是下面的代码应该适用于您:

代码语言:javascript
复制
$followUpDate = 'M12-16';
$d = DateTime::createFromFormat('\Mm-y-d H:i:s', $followUpDate . '-01 00:00:00');

echo $d->format('U');

我肯定会建议使用DateTime而不是date(),因为它提供了额外的灵活性。

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

https://stackoverflow.com/questions/36065963

复制
相关文章

相似问题

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