Я хочу напечатать год в 21, 22, 23, 24 и т.д.
предположим, что сегодня эхо=21-е в следующем году будет изменен на 22-й
скажем, предположим, что исходная дата - 2012 год, а сегодня 2019 год, это будет показывать 6-й год публикации.
<?
Orginal date=1996
today date=fetch current year
echo= today is 22nd year";
?>
Пример:
<font face = "Oswald" size = "3">21<sup><small>ST</small></sup> Year of publication</font>
<font face = "Oswald" size = "3">21<sup><small>ST</small></sup> Year of publication</font>
Честно говоря, вам нужно немного замедлить его и правильно написать свой вопрос. В вашем заголовке дважды написано create.
ЗДЕСЬ МНЕ НУЖНО ПОЛУЧИТЬ ГОДОВОЙ ОТ ТЕКУЩЕГО ГОДА, КОТОРЫЙ БУДЕТ УЖЕ ПРЕДОСТАВЛЕН
Разбейте свою проблему на этапы и исследуйте их. Например, Как получить количество лет между двумя датами? и Как добавить порядковые номера к числам.
Я НЕ КРИЧУ, Я СЛОМАЛА БОЛЬШОЙ КЛЮЧ
Затем удерживайте сдвиг.
его пример предположим, что сегодня 2019 год, это будет 1-й год
предположим, что исходная дата - 2012 год, а сегодня 2019 год, он будет показывать 6-й год.
@UzairJan Вы должны показать нам, что вы пробовали!
Возможный дубликат stackoverflow.com/questions/3109978/…
обновлено, пожалуйста, посмотрите
@UzairJan Ваш код на самом деле не похож на попытку, а скорее на отображение логики.
я привожу пример, человек-логик, вместо исправления логики я хочу функциональный код
@UzairJan StackOverflow не является службой кодирования, вы должны попробовать сами, и если вы столкнетесь с проблемой, когда уже пробовали, то мы можем вам помочь



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если я правильно понял вопрос, вы ищете что-то в этом роде:
$now = new DateTime();
$date_of_publication = new DateTime('2015-03-12');
// Calculate the difference in number of years
$difference = $now->diff($date_of_publication)->y;
// Add one to the difference in years
$difference += 1;
// Now we have the difference, we can add relevant ordinal
// PHP 5.3.0+ has a nice built in function
$locale = 'en_US'; // Set this to whatever locale you are using or based on the locale of the user
$formatter = new NumberFormatter($locale, NumberFormatter::ORDINAL);
$ordinalised = $formatter->format($difference);
echo $ordinalised; // 5th
Сочетание этого с вашим HTML будет выглядеть примерно так:
Примечание: Тег font не поддерживается в HTML5, я заменил его на span.
function get_year_of_publication($date) {
$now = new DateTime();
$date_of_publication = new DateTime($date);
// Calculate the difference in number of years
$difference = $now->diff($date_of_publication)->y;
// Add one to the difference in years and return it
return $difference + 1;
}
function ordinalise($number, $locale = 'en_US') {
$formatter = new NumberFormatter($locale, NumberFormatter::ORDINAL);
return $formatter->format($number);
}
$publication_dates = ['2015-03-12', '2016-01-08', '2019-06-07'];
foreach ($publication_dates as $date) {
$year_of_publication = get_year_of_publication($date);
$ordinalised = ordinalise($year_of_publication);
echo "<span>{$ordinalised}</span><br />";
}
Смотрите следующие ответы для более подробного описания:
это работает, но я хочу в этом формате <font face = "Oswald" size = "3">21<sup><small>ST</small></sup> Год публикации</font>
Почему вы хотите использовать устаревший тег шрифта? Функция предварительно стилизует текст так, как вы хотите, чтобы он отображался, т. е. нет необходимости в надписях и маленьких тегах.
Вот PHP-код
<?php
function get_year_of_publication($date) {
$now = new DateTime();
$date_of_publication = new DateTime($date);
$difference = $now->diff($date_of_publication)->y;
return $difference + 1;}
function ordinalise($number, $locale = 'en_US') {
$formatter = new NumberFormatter($locale, NumberFormatter::ORDINAL);
return $formatter->format($number);}
$publication_dates = ['1999-01-01'];
foreach ($publication_dates as $date) {
$year_of_publication = get_year_of_publication($date);
$ordinalised = ordinalise($year_of_publication);}
$dt=preg_split('#(?<=\d)(?=[a-z])#i',$ordinalised);
$str_upper = $dt[1];
?>
Вот вывод HTML
<font face = "Oswald" size = "3"><?php echo $dt[0]; ?><sup><small><?php echo strtoupper($str_upper); ?></small></sup> Year of publication ? </font>
Пожалуйста, покажите вашу попытку