尝试从PHP中的给定日期获取周数。出于某种原因,我尝试的各种事情似乎都是休息一周。
查看以下链接,我们应该在第3周 http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php
然而,当我做以下情况时,我得到第2周
public class EventHub
{
private readonly ISubject<object, object> _messages;
public EventHub()
{
var _subject = new Subject<object>();
m_messages = Subject.Synchronize(_subject);
}
public void Publish<T>(T message)
{
m_messages.OnNext(message);
}
public IObservable<T> AsObservable<T>()
{
return m_messages
.ObserveOn(ThreadPoolScheduler.Instance)
.OfType<T>()
.Synchronize()
.AsObservable();
}
}
我也尝试过这段代码获得相同的结果,第2周
echo "Weeknummer: " . date("W", strtotime("2016-01-17"));
任何想法为什么它似乎落后一周以及如何解决这个问题?
由于
答案 0 :(得分:2)
我们是,但今天是第19位(至少在我的时区......)。
您已在脚本中对第17个进行了硬编码,正如您在网站上看到的那样,这是第2周的最后一天。
答案 1 :(得分:1)
您发送的链接显示2016-01-17是第2周。请参阅屏幕截图。在PHP中,周从星期一开始(你可以阅读更多in the docs)
答案 2 :(得分:0)
这是因为在mktime()中,它是这样的:
mktime(hour, minute, second, month, day, year);
所以尝试下面的代码希望它是你想要的
<?php
$ddate = "2016-01-17";
$duedt = explode("-", $ddate);
$date = mktime(0, 0, 0, $duedt[1], $duedt[2], $duedt[0]);
$week = (int)date('W', $date);
echo "Weeknummer: " . $week;
?>
您也可以尝试使用github.com/briannesbitt/Carbon来最大化您在日期操作方面的技能。对于碳,您可以通过以下方式实现:
Carbon::createFromFormat('Y-m-d H', '2012-10-18')->format('W');