PHP 1st, 2nd, 3rd, 4th, 5th, 6th – PHP Add Ordinal Number Suffix - Comment Page: 1

This is simple function to add English ordinal number suffix after normal number. Function takes number as a parameter and returns number with suffix, like: 1st, 2nd, 3rd, 4th, 5th, 6th... [inttf_post_ad1] This is example table of ordinal numbers 1 to 100 1st 2nd 3rd 4th 5th 6th 7th 8th 9th ...

26 comments on “PHP 1st, 2nd, 3rd, 4th, 5th, 6th – PHP Add Ordinal Number Suffix - Comment Page: 1

1 2
    1. This article is far too complicated. All I want to know is how to add -st, -nd -rd- and -th to numbers and dates. My spelling check just wont add them to the dictionary. HELP!

      Reply
      • Hi Lucy,

        So could you tell more specific, what are you doing, if this is too complicated?

        Reply
    2. work perfectly! thanx!

      Reply
    3. lately i am seeing 1st , 2nd, 3rd, being written as 1th, 2th, 3th
      Can anyone explain the concept behind this?

      Reply
    4. You guys are great! Keep it up! =))

      Reply
    5. Thanks. good explanation.

      Reply
    6. Thank you! You saved me some brain cells!

      Reply
    7. Thanks for this function..

      Reply
    8. Simple it is not, when it doesn’t provide a echo result!!!!

      we have a $num = 26

      the result is =

      exactly

      I think karen had a POINT – a simple solution to a simple problem, one that works.

      so what is the answer for 26 = 26st or or 26nd or 26rd or 26th

      your function returns =

      exactly karen’s point.

      Reply
      • Hi Clive,

        Just tested and this function returns 26th as it should return…could you post your code?

        If you try/run exactly following code:

        
        < ?php
         
          function addOrdinalNumberSuffix($num) {
            if (!in_array(($num % 100),array(11,12,13))){
              switch ($num % 10) {
                // Handle 1st, 2nd, 3rd
                case 1:  return $num.'st';
                case 2:  return $num.'nd';
                case 3:  return $num.'rd';
              }
            }
            return $num.'th';
          }
        
          echo addOrdinalNumberSuffix(26), "\n";
        

        What is your output??

        Reply
    9. OK I am not joking either ===

      Server error
      The website encountered an error while retrieving http://polishpotterymanufaktura.co.uk/assets/TimeLine_HISTORY/test26.php. It may be down for maintenance or configured incorrectly.

      Here is a LINK:::

      http://polishpotterymanufaktura.co.uk/assets/TimeLine_HISTORY/test26.php

      your code

      <?php

      function addOrdinalNumberSuffix($num) {
      if (!in_array(($num % 100),array(11,12,13))){
      switch ($num % 10) {
      // Handle 1st, 2nd, 3rd
      case 1: return $num.'st';
      case 2: return $num.'nd';
      case 3: return $num.'rd';
      }
      }
      return $num.'th';
      }

      echo addOrdinalNumberSuffix(26), "\n";

      ?>

      NOTE:: I added ?> also removed pre php at the head, but still SERVER ERROR!

      Clive Moore

      Reply
      • What shows your access.log and error.log?

        Could you add example following code on same location to another file:

        
        < ?php
        
          phpinfo();
        
        ?>
        

        Is it working?

        And if you have just mine code on this test26.php file, then you could simply login your server and run following command:

        
        ## Replace following path with your real path ##
        php /your/www/path/assets/TimeLine_HISTORY/test26.php
        

        What is output?

        Reply
    10. Can you tell me how to use it in my case? how would I call the addOrdinalNumberSuffix and apply it to $query_data[4]? column 4 is filled with days 1 to 31

      and yes I know my php skills suck..

      <?php
      mysql_connect("localhost", "user", "pass") or die (mysql_error ());
      mysql_select_db("intranetbday") or die(mysql_error());

      function addOrdinalNumberSuffix($num) {
      if (!in_array(($num % 100),array(11,12,13))){
      switch ($num % 10) {
      // Handle 1st, 2nd, 3rd
      case 1: return $num.'ste';
      case 2: return $num.'nd';
      case 3: return $num.'rd';
      }
      }
      return $num.'de';
      }

      $result = mysql_query("SELECT * FROM verjaarsdae WHERE WEEK( BD ) = WEEK( NOW() +1 ) LIMIT 0, 30 ");
      $personeelWatVerjaar = mysql_num_rows($result);
      echo "”;
      echo “”,””,”Die week se verjaarsdae”,””,”” ;
      for($i=0;$i<$personeelWatVerjaar;$i++)
      {

      $query_data = mysql_fetch_row($result);

      echo "”,””, $query_data[4], “”,””,”“,$query_data[1],”“, “”,””,$query_data[3], “”, “”;

      }
      echo “”;
      ?>

      Reply
      • Hi Jankoos,

        So just pass that $query_data[4] to addOrdinalNumberSuffix function, like:

        
        echo "This is query_data[4] value, with ordinal number suffix: " . addOrdinalNumberSuffix($query_data[4]);
        

        Few other notes, mysql funtions are deprecated on PHP 5.5, so it’s better use PDO or at least mysqli instead mysql and more elegant way to do this loop is example following:

        
        $result = mysql_query("SELECT field1, field2, field3 FROM verjaarsdae WHERE WEEK( BD ) = WEEK( NOW() +1 ) LIMIT 0, 30 ");
        
        while ($row = mysql_fetch_assoc($result)) {
            echo $row["field1"];
            echo $row["field2"];
            echo $row["field3"];
        }
        

        Replace field1, field2, fiedl3…with your real field names or if you want really use numeric array, then use mysql_fetch_array instead mysql_fetch_assoc, but this is little bit risky, if you change your mysql table, then numeric array might be different.

        Reply
    11. This function worked well for me. Thanks.

      Reply
    12. it will through some syntex error

      Reply
      • Hi a,

        Could you post errors? And PHP version?

        Reply
1 2

Leave a Reply to Ajit Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Close