Php 国际固定日历/科茨沃思日历
我正试图建立一个网站,日历从公历转换为国际金融公司。转换非常简单,但我对PHP不够精通,无法完成显示今天日期的所有计算 我已经通过一个工作变量$dayofyear打印了当前月份,该变量统计自1月1日起的天数(手动输入),然后通过以下方式显示当前月份:Php 国际固定日历/科茨沃思日历,php,date,calendar,Php,Date,Calendar,我正试图建立一个网站,日历从公历转换为国际金融公司。转换非常简单,但我对PHP不够精通,无法完成显示今天日期的所有计算 我已经通过一个工作变量$dayofyear打印了当前月份,该变量统计自1月1日起的天数(手动输入),然后通过以下方式显示当前月份: $now = time(); // or your date as well $your_date = strtotime("2020-01-01"); //I'd also love to get this replaced wi
$now = time(); // or your date as well
$your_date = strtotime("2020-01-01"); //I'd also love to get this replaced with a string automatically starting from jan 1st of current year so I don't have to update it every year.
$dayofyear = $now - $your_date;
$day = round($dayofyear / (60 * 60 * 24));
$date = round($dayofyear / (7));
if ($day > 0 && $day < 27) {
echo 'January';
}
elseif ($day > 28 && $day < 55) {
echo 'February';
}
elseif ($day > 56 && $day < 83) {
echo 'March';
}
elseif ($day > 84 && $day < 111) {
echo 'April';
}
elseif ($day > 112 && $day < 139) {
echo 'May';
}
elseif ($day > 140 && $day < 168) {
echo 'June';
}
elseif ($day > 169 && $day < 196) {
echo 'Sol';
}
elseif ($day > 197 && $day < 224) {
echo 'July';
}
elseif ($day > 225 && $day < 252) {
echo 'August';
}
elseif ($day > 253 && $day < 280) {
echo 'September';
}
elseif ($day > 281 && $day < 308) {
echo 'October';
}
elseif ($day > 309 && $day < 336) {
echo 'November';
}
elseif ($day > 337 && $day < 365) {
echo 'December';
}
else {
echo '<i>error...</i>';
}
$now=time();//还是你的约会对象
$your_date=strottime(“2020-01-01”)//我也希望从今年的1月1日起自动用字符串替换它,这样我就不必每年更新它了。
$dayofyear=$now-$your_日期;
$day=整数($dayofyear/(60*60*24));
$date=整数($dayofyear/(7));
如果($day>0&$day<27){
回声“一月”;
}
其他($day>28&$day<55){
回音“二月”;
}
其他($day>56&$day<83){
回音'三月';
}
其他($day>84&$day<111){
回音“四月”;
}
其他($day>112&$day<139){
回音“五月”;
}
其他($day>140&$day<168){
回音‘六月’;
}
其他($day>169&$day<196){
回声“Sol”;
}
其他($day>197&$day<224){
回音‘七月’;
}
elseif($day>225&$day<252){
回声“八月”;
}
其他($day>253&$day<280){
回音“九月”;
}
其他($day>281&$day<308){
回音‘十月’;
}
其他($day>309&$day<336){
回音‘十一月’;
}
其他($day>337&$day<365){
回音‘十二月’;
}
否则{
回音“错误…”;
}
此外,如果可以选择缩短代码,我们将不胜感激。
我一直试图通过javascript实现这一点,但没有成功…如前所述,我认为您需要研究date、Strotime和php DateTime接口。我不清楚你想做什么,但你不应该构建大型if/then语句来处理日期
//本月
回音日期('F')。'
;
//打印本年度的1月1日
回音日期('Y-01-01')。'
;
//当日
回音日期('z')。'
;
//strotime很适合解析任何日期格式
$time=strottime(“现在+60天”);
回显日期('r',$time)。'
;
//从一年中的任何一天获取日期,注意这从0开始
$dayOfYear=255;
$date=DateTime::createFromFormat('z',$dayOfYear);
//月
echo$日期->格式('F')。'
;
//月日
echo$date->format('d')。'
;
前进
2020-01-01
86
2020年5月26日星期二23:22:09+0000
九月
13
如前所述,您认为需要查看date、strotime和php DateTime接口。我不清楚你想做什么,但你不应该构建大型if/then语句来处理日期
//本月
回音日期('F')。'
;
//打印本年度的1月1日
回音日期('Y-01-01')。'
;
//当日
回音日期('z')。'
;
//strotime很适合解析任何日期格式
$time=strottime(“现在+60天”);
回显日期('r',$time)。'
;
//从一年中的任何一天获取日期,注意这从0开始
$dayOfYear=255;
$date=DateTime::createFromFormat('z',$dayOfYear);
//月
echo$日期->格式('F')。'
;
//月日
echo$date->format('d')。'
;
前进
2020-01-01
86
2020年5月26日星期二23:22:09+0000
九月
13
好的,现在我明白了问题所在。我想你可以使用模数运算符,将一年中的公历日除以28,得到IFC的月份和日期。然后是将其转换为正确的月份名称的问题
ifcDate(0);
$time = strtotime('1/29/2020');
ifcDate(date('z', $time));
ifcDate(363);
// Today
ifcDate(date('z'));
// Other dates
$time = strtotime('2/26/2020');
ifcDate(date('z', $time));
$time = strtotime('06/25/2020');
ifcDate(date('z', $time));
function ifcDate($day) {
// gregorian day starts at 0
$ifcMonth = ceil(($day + 1) / 28);
$ifcDay = ($day % 28) + 1;
// Month 7 is Sol
if ($ifcMonth < 7) {
$dateObj = DateTime::createFromFormat('!m', $ifcMonth);
$month = $dateObj->format('F');
} elseif ($ifcMonth == 7) {
$month = 'Sol';
} else {
$dateObj = DateTime::createFromFormat('!m', $ifcMonth - 1);
$month = $dateObj->format('F');
}
echo "$ifcMonth $ifcDay" . "<br />";
echo "$month $ifcDay" . "<br />";
}
ifcDate(0);
$time=strottime('1/29/2020');
ifcDate(日期('z',$time));
ifcDate(363);
//今天
ifcDate(日期('z'));
//其他日期
$time=strottime('2/26/2020');
ifcDate(日期('z',$time));
$time=strottime('06/25/2020');
ifcDate(日期('z',$time));
函数ifcDate($day){
//公历日从0开始
$ifcMonth=ceil($day+1)/28);
$ifcDay=($day%28)+1;
//第七个月是索尔
如果($ifcMonth<7){
$dateObj=DateTime::createFromFormat(“!m”,$ifcMonth);
$month=$dateObj->format('F');
}elseif($ifcMonth==7){
$month='Sol';
}否则{
$dateObj=DateTime::createFromFormat(“!m”,$ifcMonth-1);
$month=$dateObj->format('F');
}
回显“$ifcMonth$ifcDay”。
;
回显“$month$ifcDay”。
;
}
好的,现在我明白了问题所在。我想你可以使用模数运算符,将一年中的公历日除以28,得到IFC的月份和日期。然后是将其转换为正确的月份名称的问题
ifcDate(0);
$time = strtotime('1/29/2020');
ifcDate(date('z', $time));
ifcDate(363);
// Today
ifcDate(date('z'));
// Other dates
$time = strtotime('2/26/2020');
ifcDate(date('z', $time));
$time = strtotime('06/25/2020');
ifcDate(date('z', $time));
function ifcDate($day) {
// gregorian day starts at 0
$ifcMonth = ceil(($day + 1) / 28);
$ifcDay = ($day % 28) + 1;
// Month 7 is Sol
if ($ifcMonth < 7) {
$dateObj = DateTime::createFromFormat('!m', $ifcMonth);
$month = $dateObj->format('F');
} elseif ($ifcMonth == 7) {
$month = 'Sol';
} else {
$dateObj = DateTime::createFromFormat('!m', $ifcMonth - 1);
$month = $dateObj->format('F');
}
echo "$ifcMonth $ifcDay" . "<br />";
echo "$month $ifcDay" . "<br />";
}
ifcDate(0);
$time=strottime('1/29/2020');
ifcDate(日期('z',$time));
ifcDate(363);
//今天
ifcDate(日期('z'));
//其他日期
$time=strottime('2/26/2020');
ifcDate(日期('z',$time));
$time=strottime('06/25/2020');
ifcDate(日期('z',$time));
函数ifcDate($day){
//公历日从0开始
$ifcMonth=ceil($day+1)/28);
$ifcDay=($day%28)+1;
//第七个月是索尔
如果($ifcMonth<7){
$dateObj=DateTime::createFromFormat(“!m”,$ifcMonth);
$month=$dateObj->format('F');
}elseif($ifcMonth==7){
$month='Sol';
}否则{
$dateObj=DateTime::createFromFormat(“!m”,$ifcMonth-1);
$month=$dateObj->format('F');
}
回显“$ifcMonth$ifcDay”。
;
回显“$month$ifcDay”。
;
}
为什么不直接使用date()函数呢?哦,谢谢!现在我可以删除整个变量定义来计数了!如何将其转换为新的日期仍然是我面临的问题我感觉我拿着一个钻头,试图通过转动整个钻头来钻孔,而不是按下按钮让钻头完成工作。不需要等待,它不会是每天一行,因为同一日期显然发生在十三个不同的日期(“z”),因此可以工作,