2017-01-10 1 views
-1

Не могли бы вы пояснить, как я могу определить свой собственный формат даты в PHP?Как определить собственный формат даты в PHP?

Например, у меня есть переменная даты.

И я хочу вывести эту дату как дату древнеримского календаря. Или в формате календаря Французской революции. Эти календари, например, начинаются не с Рождества и имеют другие названия месяцев.

Также некоторые календари не имеют недель в 7 дней, но имеют «недели» в другое количество дней.

Или в формате «год и сезон». Например, «2016, лето».

Можно ли добавить формат даты в форматы даты PHP и как-то закодировать его вывод?

+1

Если вы можете определить его, вы можете его закодировать. Для каждого из ваших примеров потребуется собственный набор кода – nogad

ответ

0

Возможно только определить свою собственную функцию. способ, которым я думаю, что большинство poeple будет делать это, создайте файл functions.php, где хранятся ваши функции и другие пользовательские функции. Затем включите функции.php в файл, в котором вы хотите отобразить римскую дату. Затем объявить функцию:

function translateToRomanCalendar($date = ""){//declare function 

    $romanDate = "";//declare roman date variable 

    //Put the translation code here. Using tests and stuff to store 
    //the roman date in the romanDate variable 

    return $romanDate;//return the roman date 

} 

Тогда просто вызовите эту функцию в файле PHP: например, чтобы отобразить переведенный в текущем году вы могли бы сделать

<?php echo translateToRomanCalendar(date('Y')) ?> 

Это эхом возвращаемого значения функции (значение $ romanDate).

Теперь, что будет сложно, это код фактической функции; вы должны проверить формат даты и прочее.

в любом случае надеется, что в Интернете есть тонны материалов о функциях php.

С уважением

Alex

+0

Нет, я имел в виду следующее. Могу ли я определить, например, формат даты «RD», а затем написать этот код? ' ' И« RD »должен был выводиться как« римская дата »для переменной даты. Возможно ли это на PHP? –

+0

Нет, но ' 'не должно быть проблемой – nogad

+0

Может ли кто-нибудь сказать мне, что не так с моим ответом? Почему нам нужно пройти определение класса, а не только функцию? –

0
class MyDateTime extends DateTime { 
     public string format ($format) { 
      if ($format == "RD") { 
       //Convert to roman date 
       return $romanDateFormat; 

      } 
      return parent::format($format); 
     } 

} 

Тогда используйте только MyDateTime вместо DateTime

Вы не можете напрямую добавлять новый формат для встроенного объекта DateTime для обработки, насколько я знаю ,