我正在尝试使用UNIX时间戳并使用PHP将其转换为字符串。考虑到PHP的内置函数,这很容易,但是我有一组特定的需求,这给我带来了一些困惑。
其逻辑如下:
todayyesterdayday name (星期四、星期二等)last weekMonth and Year (格式为2013年6月、2011年1月等)这从一开始就显得很简单,但出于某种原因,我的大脑在这件事上感到困惑。
请注意:我不想要一个基于纯算术的解决方案,因为现代的日历系统是相当复杂的,为了精确起见,我想使用内置的时间函数来解释这一点。strtotime()、date()等。
提前感谢
编辑:到目前为止我使用的逻辑的初始部分如下所示。当然,只有在时间戳是今天的情况下,才会返回today。我需要将此扩展到考虑到其他要求。也许使用strtotime
public function getTimeChange($timestamp)
{
$today = date('Ymd');
$date = date(Ymd', $timestamp);
if($date == $today){
return 'today';
}
}发布于 2013-06-20 13:57:53
就像这样:
$date = date_create("@{$timestamp}");
// date_create() == new DateTime()
if($date < date_create('last week')){
return $date->format('M Y');
}elseif($date < date_create('this week')){
return 'Last week';
}elseif($date < date_create('yesterday')){
return $date->format('l');
}elseif($date < date_create('today')){
return 'Yesterday';
}else{
return 'Today or future date';
}(可以比较DateTime对象)
但是你不应该再为日期使用时间戳了,因为它们的范围有限。选择标准日期格式并将其存储为字符串.
发布于 2013-06-20 13:54:20
..。为了准确起见,我想使用内置的时间函数..。
至少“上周是否”这个问题取决于如此多的设置(一周中的第一天、ISO日期是否、DST是否.)为了准确起见,最好不要依赖PHP中内置的日历函数。
我不知道到底是谁在PHP中将时区名称设置为"Amsterdam/Berlin“,而CET等则是可用的。处理这件事其实是一件好事。
https://stackoverflow.com/questions/17215313
复制相似问题