Sgript Dyddiad Cymraeg (pHp)

Bydysawd yr uwchnerdiaid

Cymedrolwr: dafydd

Rheolau’r seiat
Cyfle i drafod unrhywbeth sy'n ymwneud â Dylunio, Technoleg a'r We. Problem cyfrifiadurol? Bydd aelodau'r maes yn falch o gynnig cymorth. Pwyswch yma i ddarllen canllawiau cyffredinol maes-e.

Sgript Dyddiad Cymraeg (pHp)

Postiogan Duw » Sul 11 Ion 2009 9:20 pm

Wedi bod yn ffidlan gyda hen wefan ac wedi gorfod creu sgript ar gyfer dangos y dyddiad yn y Gymraeg (unrhyw fformat). Dyma'r sgript mewn pHp. Gallwch ei newid/ defnyddio fel y dymunwch.

Cod: Dewis popeth
function dyddiad_cy($dyddiad='',$fformat_mewn='d',$fformat_allan,$S=true){
//Defnydd o dudalen php arall - enghraifft:
//      $dyddiad = dyddiad_cy('13/04/2008','d','l, F jS, Y',true);
//      $dyddiad = dyddiad_cy('','d','l, F jS, Y',true); - ar gyfer heddiw

//Bydd y data yna'n cael ei storio yn y newidyn $dyddiad
//Yna gallwch wneud hyn:   echo $dyddiad;

   //$fformat_mewn =    d (dyddiad normal - dd/mm/yyyy hh:mm:ss) - diofyn
   //               u (unix - yyyy-mm-dd hh:mm:ss)
   //               a (americanaidd - mm/dd/yyyy hh:mm:ss)
   //$fformat_allan =    'string', e.e. 'l, F jS, Y' = "Dydd Llun, Ionawr 12fed, 2009"
   //               y diofyn yw dyddiad fformat byr Prydeinig, e.e. 18/01/2009
   //               os ydych am gynnwys testun statig: date("l #y#r jS");
   //               bydd yn rhoi, 'Dydd Gwener yr 21ain'
   //Am y 'strings' gweler: "http://uk3.php.net/manual/en/function.date.php"
   //               $S yw rhoi estyniad 'ain', 'af', 'fed' ar ffurf uwch-sgript
   //               y diofyn yw TRUE
   
   //Arae tylfyriadau pHp ar gyfer y ffwythiant date().
   $talfyr = array('d','j','l','S','D','N','w','z','W','m','n','t','L','o','Y','y','B','g','G','h','H','i','s','u','e','I','O','P','T','Z','F','M','a','r','A','c','U');
   
   //========ECHDYNNU DARNAU O'R MEWNBWN============
   
   if($dyddiad != ''){
      //Fformat normal
      
      if($fformat_mewn == 'd'){
         $d = substr($dyddiad,0,2);
         $m = substr($dyddiad,3,2);
         $y = substr($dyddiad,6,4);
      //Fformat unix   
      }else if($fformat_mewn == 'u'){
         $d = substr($dyddiad,8,2);
         $m = substr($dyddiad,5,2);
         $y = substr($dyddiad,0,4);
      //Fformat UDA
      }else if($fformat_mewn == 'a'){
         $d = substr($dyddiad,3,2);
         $m = substr($dyddiad,0,2);
         $y = substr($dyddiad,6,4);
      }
      //Echdynnu amser
      $a = substr($dyddiad,11,2);
      $mn = substr($dyddiad,14,2);
      $e = substr($dyddiad,17,2);
      if($a =="")$a = "00";
      if($mn =="")$mn = "00";
      if($e =="")$e = "00";
      
      $i = 0;
      while ($i < count($talfyr)) {
          $allbwn[$talfyr[$i]] = date("{$talfyr[$i]}",mktime($a,$mn,$e,$m,$d,$y));
         $i = $i + 1;
      }
   }else{
      while ($i < count($talfyr)) {
          $allbwn[$talfyr[$i]] = date("{$talfyr[$i]}");
         $i = $i + 1;
      }
   }
   
   //Gosod data o ffwythiant date() i arae o'r enw ALLBWN
   
   //Cyfres o araeau Cymraeg: (i) estyniadau dyddiad, (ii) dydd (iii) mis   
   $diwedd = array('af','ail','ydd','ydd','ed','ed','fed','fed','fed','fed','eg','fed','eg','eg','fed','eg','eg','fed','eg','fed','ain','ain','ain','ain','ain','ain','ain','ain','ain','ain','ain');
   $enw_dydd = array('Sul', 'Llun', 'Mawrth', 'Mercher', 'Iau', 'Gwener', 'Sadwrn');
   $enw_mis = array('Ionawr', 'Chwefror', 'Mawrth', 'Ebrill', 'Mai', 'Mehefin', 'Gorffennaf', 'Awst', 'Medi', 'Hydref', 'Tachwedd', 'Rhagfyr');
   //Ail-gyfrifo data sydd angen ei gyfieithu
   $allbwn['l'] = "Dydd " . $enw_dydd[$allbwn['w']];
   $allbwn['D'] = substr($enw_dydd[$allbwn['w']],0,3);
   $allbwn['S'] = $diwedd[$allbwn['j'] - 1];
   $allbwn['F'] = $enw_mis[$allbwn['n'] - 1];
   $allbwn['M'] = substr($enw_mis[$allbwn['n'] - 1],0,3);
   $allbwn['a'] = ($allbwn['a'] == 'am') ? "yb" : "yh";
   $allbwn['A'] = ($allbwn['A'] == 'AM') ? "YB" : "YH";
   $allbwn['r'] = $allbwn['D'] . ", " . $allbwn['d'] . " " . $allbwn['M'] . " " . $allbwn['Y'] . " " . $allbwn['H'] .":" . $allbwn['i'] .":" . $allbwn['s'] . " " . $allbwn['O'];
   //Gosod superscript (uwchsgript) i'r estyniad, os ydyw wedi'i setio (diofyn = true)
   if($S==true)$allbwn['S'] = "<sup>{$allbwn['S']}</sup>";
   //Prosesu'r fformat_allan. Mae hwn yn gwirio bod llythyren yn ei dro.
   //Os oes '#' o'i flaen, nid fydd yn ei gynnwys a bydd yn trin y llythyren nesaf yn lythrennol. Yn y ffwythiant date() gwreiddiol, mae '\' yn cael ei ddefnyddio. Nid yw hwn yn gweithio gyda'r ffwythiant hwn - defnyddiwch '#' yn lle 'ny.
   $mas = "";
   $i = 0;
   while ($i < strlen($fformat_allan)){
      $c = substr($fformat_allan,$i,1);
         if($c == '#'){
         }else if(($i > 0 && substr($fformat_allan,$i-1,1) == '#') || $c == " " || $c == ',' || $c == '-' || $c == '/' || $c == ';' || $c == '(' || $c == ')' || $c == '<' || $c == '>'){
            $mas = $mas . $c; //llythyren llythrennol
         }else{
            $mas = $mas . $allbwn[$c]; //data o'r arae
         }
      $i = $i + 1;
   }
   return $mas;
}
Rhithffurf defnyddiwr
Duw
Gweinyddwr
Gweinyddwr
 
Negeseuon: 1263
Ymunwyd: Mer 16 Ion 2008 6:39 pm
Lleoliad: fanyn a wynco

Dychwelyd i Dylunio, Technoleg a'r We

Pwy sydd ar-lein

Defnyddwyr sy’n pori’r seiat hon: Dim defnyddwyr cofrestredig a 3 gwestai