我正在使用PHP开发应用程序,我需要使用日期和工作日的数字表示。
我尝试过以下方法:
$today = date("Y-m-d");
$number = date('N', strtotime($today));
echo "Today: " . $today . " weekday: " . $number . "<br>";
$today = strtotime($today);
$tomorrow = strtotime($today);
$tomorrow = strtotime("+1 day", $today);
$number2 = date('N', strtotime($tomorrow));
echo "Tomorrow: " . date('Y-m-d', $tomorrow) . " weekday: " . $number2 . "<br>";
Today: 2016-11-11 weekday: 5
Tomorrow: 2016-11-12 weekday: 4
这是不对的,因为明天的工作日应该是6而不是4。
有人可以帮助我吗?
答案 0 :(得分:3)
使用DateTime
会提供一个简单的解决方案
<?php
$date = new DateTime();
echo 'Today: '.$date->format( 'Y-m-d' ) .' weekday '. $date->format( 'N' )."\n";
$date->modify( '+1 days' );
echo 'Tomorrow: '.$date->format( 'Y-m-d' ) .' weekday '. $date->format( 'N' )."\n";
输出
Today: 2016-11-11 weekday 5
Tomorrow: 2016-11-12 weekday 6
然而,日期数字略有不同,N代表工作日数字,你可以看到星期五(今天)显示为5.星期一是1,星期日是7。
如果你看下面的例子,你应该得到相同的结果
echo date( 'N' );
输出
5
答案 1 :(得分:2)
你的代码中有一点错误,这是工作的错误:
Danh
答案 2 :(得分:1)
DateTime是在PHP中使用日期的面向对象方法。我发现它的工作更加流畅。除此之外,它看起来更好。
// Create a new instance
$now = new DateTime();
echo $now->format('N');
// Next day
$now->modify('+1 day');
echo $now->format('N');
答案 3 :(得分:-1)
你几乎是正确但不完全。您为什么在android:layout_marginTop="56dp"
上使用strtotime
?将其更改为$number2
即可。