我需要编写一个生成随机日期的程序
$start = strtotime('2010-01-01');
$end = strtotime('2018-01-01');
$random_date = date('n F Y l ', rand($start, $end));
然后我需要将月份和日期的名称翻译成俄语
$lat = array ('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'January', 'February', 'March', 'April', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$rus = array ('Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Января', 'Февраля', 'Марта', 'Апреля', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря');
return str_replace($lat,$rus, $random_date) ;
$holidays = array('8 января','7 января','14 января', '23 февраля','8 марта','1 апреля','12 апреля','1 мая','9 мая','12 июня','22 июня','1 сентября','27 сентября','4 ноября','12 декабря','31 декабря','1 января');//dates of rus holidays
然后我需要以这种格式显示日期:
2Февраля2014Пятница(2014年2月2日星期五)。
以下是我遇到的问题:
最终结果必须如下:2014年2月2日星期五假日和/或周末。 所以,我需要指定显示的日期是周末还是/和假日。有人可以帮忙吗?
答案 0 :(得分:0)
您将日期设置为$ date,然后我们将$ weekend设置为false直到我们检查它,然后我们检查日期,如果是周末设置$ weekend为true。然后,如果日期是一个周末我打印它是一个周末,如果它不是我打印它不是一个周末,但你可以做任何你喜欢的事情......
function isitweekend($date){
$date = '2018-03-16';
$weekend = false;
$day = date("D", strtotime($date));
if($day == 'Sat' || $day == 'Sun'){
$weekend = true;
}
}
和作为函数(还没有测试过这个):
font-family *:[ \w,\-_]+;?
答案 1 :(得分:0)
首先,让我们创建一个返回随机日期的函数:
function randomDate($start_date, $end_date)
{
$min = new DateTime($start_date . ' 00:00:00 UTC');
$max = new DateTime($end_date . ' 23:59:59 UTC');
return new DateTime('@' . rand($min->getTimestamp(), $max->getTimestamp()));
}
然后创建了while
循环来检查周末和假期:
// Fill this array with your holidays
$holidays = ['*-12-25', '*-01-01', '*-01-07', '*-05-01'];
while (true) {
// Get random date
$randomDate = randomDate('2010-01-01', '2018-01-01');
// Get random date again, since this one is on weekend.
if ($randomDate->format('N') >= 6) continue;
// Get random date again, since this one is on holiday.
if (in_array($randomDate->format('*-m-d'), $holidays)) continue;
// Exit the loop, since random date is ok!
break;
}
// Random date
echo $randomDate->format('Y-m-d');
然后只需将日期和月份名称转换为您的语言。
答案 2 :(得分:0)
如果您想检查国际假期,这里是我为它编写的函数。
function checkHoliday($date){
if(date('l', strtotime($date)) == 'Saturday'){
return "Saturday";
}else if(date('l', strtotime($date)) == 'Sunday'){
return "Sunday";
}else{
$receivedDate = date('d M', strtotime($date));
$holiday = array(
'01 Jan' => 'New Year Day',
'18 Jan' => 'Martin Luther King Day',
'22 Feb' => 'Washington\'s Birthday',
'05 Jul' => 'Independence Day',
'11 Nov' => 'Veterans Day',
'24 Dec' => 'Christmas Eve',
'25 Dec' => 'Christmas Day',
'31 Dec' => 'New Year Eve'
);
foreach($holiday as $key => $value){
if($receivedDate == $key){
return $value;
}
}
}
}
这样称呼它
$date = '01/01/2021';
echo checkHoliday($date);
是的,您必须手动将假期添加到上面的数组中。