~ubuntu-gr-webteam/ubuntu-gr-website/drupal6-site

« back to all changes in this revision

Viewing changes to sites/all/modules/date/date_php4/date_php4.inc

  • Committer: Thanos Lefteris
  • Date: 2009-07-29 17:46:54 UTC
  • Revision ID: alefteris@gmail.com-20090729174654-pgfr1vtqw8ikvo5r
* Upgraded calendar module
* Upgraded commentrss module
* Upgraded date module
* Upgraded webfm module

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<?php
2
 
// $Id: date_php4.inc,v 1.27.4.36 2009/03/27 11:02:38 karens Exp $
 
2
// $Id: date_php4.inc,v 1.27.4.39 2009/05/12 09:58:59 karens Exp $
3
3
 
4
4
/**
5
5
 * @file
138
138
              $date_string .= $dow;
139
139
            }
140
140
            elseif ($c == 'l') {
141
 
              $days = date_week_days();
142
 
             $date_string .= $days[$dow];
 
141
              $days = date_week_days_untranslated();
 
142
              $date_string .= $days[$dow];
143
143
            }
144
144
            elseif ($c == 'D') {
 
145
              // There is no date_week_days_abbr_untranslated(). 
 
146
              // This rule works for English, untranslated day names.
145
147
              $days = date_week_days_abbr();
146
 
              $date_string .= $days[$dow];
 
148
              $date_string .= substr($days[$dow], 0, 3);
147
149
            }
148
150
            break;
149
151
          case 'L':
151
153
            break;
152
154
          case 'z':
153
155
            $date_string .= date_calc_julian_date(date_part_extract($date->value, 'day'),
154
 
              date_part_extract($date->value, 'month'),
155
 
              date_part_extract($date->value, 'year'));
 
156
            date_part_extract($date->value, 'month'),
 
157
            date_part_extract($date->value, 'year'));
156
158
            break;
157
159
          case 'N':
158
160
            $w = date_date('w', $timestamp, $date->timezone);
172
174
            $date_string .= sprintf('%s%02d:%02d', (date_offset_get($date) < 0 ? '-' : '+'), abs(date_offset_get($date) / 3600), abs(date_offset_get($date) % 3600) / 60);
173
175
            break;
174
176
          case 'e':
175
 
            $date .= $date->timezone;
 
177
            $date_string .= $date->timezone;
176
178
            break;
177
179
          case 'Z':
178
 
            $date .= date_offset_get($date);
 
180
            $date_string .= date_offset_get($date);
179
181
            break;
180
182
          case '\\':
181
183
            $date_string .= $format[++$i];
387
389
  function date_modify(&$date, $change) { 
388
390
    $cdate = $date->value;
389
391
    $time = substr($date->value, 11, 8);
 
392
   
 
393
    // We have to use strings like 'First Sunday' instead of
 
394
    // +1 Sunday to overcome a PHP5 bug (see #369020).
 
395
    // Swap those values out here and go back to '+1 Sunday',
 
396
    // the code that works in PHP4.
 
397
    $replace = array_flip(date_order());
 
398
    $change = strtr($change, $replace);
 
399
    
390
400
    $change = trim($change);   
391
401
    //Date is too old for strtotime(), or looking for custom +/- values, use date_calc instead.
392
402
    if (substr($change, 0, 1) != '+' && substr($change, 0, 1) != '-'
612
622
  $year = date('Y', $timestamp);
613
623
 
614
624
  // Information on Daylight Saving time was obtained from http://webexhibits.org/daylightsaving/g.html
 
625
  // Note that 'last sunday' is interpreted as 'the last sunday before...'.
615
626
  switch ($region) {
616
627
    case 0:
617
628
      return 0;
618
629
    case 1: // Egypt
619
630
      // start of DST (last Friday in April)
620
 
      $dststart = strtotime("-1 week friday UTC", strtotime("1 may $year UTC"));
 
631
      $dststart = strtotime("last friday UTC", strtotime("1 may $year UTC"));
621
632
      // end of DST (last Thursday in September)
622
 
      $dstend = strtotime("-1 week thursday UTC", strtotime("1 october $year UTC"));
 
633
      $dstend = strtotime("last thursday UTC", strtotime("1 october $year UTC"));
623
634
      break;
624
635
    case 2: // Namibia
625
636
      // start of DST (first Sunday in September)
626
 
      $dststart = strtotime("1 week sunday UTC", strtotime("1 september $year UTC"));
 
637
      $dststart = strtotime("first sunday UTC", strtotime("1 september $year UTC"));
627
638
      // end of DST (first Sunday April)
628
 
      $dstend = strtotime("1 week sunday UTC", strtotime("1 april $year UTC"));
 
639
      $dstend = strtotime("first sunday UTC", strtotime("1 april $year UTC"));
629
640
      break;
630
641
    case 3: // Former USSR
631
642
      // start of DST (last Sunday in March)
632
 
      $dststart = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
643
      $dststart = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
633
644
      // end of DST (last Sunday October)
634
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
645
      $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
635
646
      break;
636
647
    case 4: // Iraq, Syria
637
648
      // start of DST (April 1st)
680
691
      break;
681
692
    case 6: // Lebanon, Kirgizstan
682
693
      // start of DST (Last Sunday in March)
683
 
      $dststart = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
694
      $dststart = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
684
695
      // end of DST (Last Sunday in October)
685
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
696
      $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
686
697
      break;
687
698
    case 7: // Palestine
688
699
      // start of DST (First Friday on or after April 15th)
698
709
      break;
699
710
    case 9: // South Australia
700
711
      // start of DST  (last Sunday in October)
701
 
      $dststart = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
712
      $dststart = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
702
713
      // end of DST (last Sunday in March)
703
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
714
      $dstend = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
704
715
      break;
705
716
    case 10: // Australia, Tasmania
706
717
      // start of DST  (first Sunday in October)
707
 
      $dststart = strtotime("1 week sunday UTC", strtotime("1 october $year UTC"));
 
718
      $dststart = strtotime("first sunday UTC", strtotime("1 october $year UTC"));
708
719
      // end of DST (last Sunday in March)
709
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
720
      $dstend = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
710
721
      break;
711
722
    case 11: // New Zealand
712
723
      // start of DST  (first Sunday in October)
713
 
      $dststart = strtotime("1 week sunday UTC", strtotime("1 october $year UTC"));
714
 
      // end of DST (third Sunday in March)
715
 
      $dstend = strtotime("3 week sunday UTC", strtotime("1 march $year UTC"));
 
724
      $dststart = strtotime("first sunday UTC", strtotime("1 october $year UTC"));
 
725
      // end of DST (first Sunday in April)
 
726
      $dstend = strtotime("first sunday UTC", strtotime("1 april $year UTC"));
716
727
      break;
717
728
    case 12: // Tonga
718
729
      // start of DST (first Sunday in November)
719
 
      $dststart = strtotime("1 week sunday UTC",  strtotime("1 november $year UTC"));
 
730
      $dststart = strtotime("first sunday UTC",  strtotime("1 november $year UTC"));
720
731
      // end of DST (last Sunday in January)
721
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 february $year UTC"));
 
732
      $dstend = strtotime("last sunday UTC", strtotime("1 february $year UTC"));
722
733
      break;
723
734
    case 13: // EU and other European countries
724
735
      // start of DST (last Sunday in March 1 am UTC)
725
 
      $dststart = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
736
      $dststart = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
726
737
      // end of DST in Europe (last Sunday in October 1 am UTC)
727
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
738
      $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
728
739
      break;
729
740
    case 14: // Russian Federation
730
741
      // start of DST (last Sunday in March 2 am local time)
731
 
      $dststart = strtotime("-1 week sunday UTC", strtotime("1 april $year UTC"));
 
742
      $dststart = strtotime("last sunday UTC", strtotime("1 april $year UTC"));
732
743
      // end of DST (last Sunday in October 2 am local time)
733
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
744
      $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
734
745
      break;
735
746
    case 15: // Northern America (where applicable)
736
747
      // start of DST  (where applicable) (first Sunday in April before 2007,
737
748
      // after that second Sunday in March, 2 am local time)
738
749
      if ($year < 2007) {
739
 
        $dststart = strtotime("1 week sunday UTC", strtotime("1 april $year UTC"));
 
750
        $dststart = strtotime("first sunday UTC", strtotime("1 april $year UTC"));
740
751
      }
741
752
      else {
742
 
        $dststart = strtotime("1 week sunday UTC", strtotime("1 march $year UTC"));
 
753
        $dststart = strtotime("second sunday UTC", strtotime("1 march $year UTC"));
743
754
      }
744
755
      // end of DST (where applicable) (last Sunday in October 2 am local time)
745
756
      if ($year < 2007) {
746
 
        $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
757
        $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
747
758
      }
748
759
      else {
749
 
        $dstend = strtotime("1 week sunday UTC", strtotime("1 november $year UTC"));
 
760
        $dstend = strtotime("first sunday UTC", strtotime("1 november $year UTC"));
750
761
      }
751
762
      break;
752
763
    case 16: // Cuba
753
764
      // start of DST  (April 1st)
754
765
      $dststart = strtotime("1 april $year UTC");
755
766
      // end of DST (last Sunday in October)
756
 
      $dstend = strtotime("-1 week sunday UTC", strtotime("1 november $year UTC"));
 
767
      $dstend = strtotime("last sunday UTC", strtotime("1 november $year UTC"));
757
768
      break;
758
769
    case 17: // Brazil
759
770
      // start of DST  (first Sunday in November)
760
 
      $dststart = strtotime("1 week sunday UTC", strtotime("1 november $year UTC"));
 
771
      $dststart = strtotime("first sunday UTC", strtotime("1 november $year UTC"));
761
772
      // end of DST (third Sunday in February)
762
 
      $dstend = strtotime("3 week sunday UTC", strtotime("1 february $year UTC"));
 
773
      $dstend = strtotime("third sunday UTC", strtotime("1 february $year UTC"));
763
774
      break;
764
775
    case 18: // Chile
765
776
      // start of DST  (Second Saturday of October - at midnight)
766
 
      $dststart = strtotime("2 week saturday UTC", strtotime("1 october $year UTC"));
 
777
      $dststart = strtotime("second saturday UTC", strtotime("1 october $year UTC"));
767
778
      // end of DST (Second Saturday of March - at midnight)
768
 
      $dstend = strtotime("2 week sunday UTC", strtotime("1 march $year UTC"));
 
779
      $dstend = strtotime("second sunday UTC", strtotime("1 march $year UTC"));
769
780
      break;
770
781
    case 19: // Falklands
771
782
      // start of DST  (First Sunday on or after 8 September)
775
786
      break;
776
787
    case 20: // Paraguay
777
788
      // start of DST  (first Sunday in September)
778
 
      $dststart = strtotime("1 week sunday UTC", strtotime("1 september $year UTC"));
 
789
      $dststart = strtotime("first sunday UTC", strtotime("1 september $year UTC"));
779
790
      // end of DST (first Sunday in April)
780
 
      $dstend = strtotime("1 week sunday UTC", strtotime("1 april $year UTC"));
 
791
      $dstend = strtotime("first sunday UTC", strtotime("1 april $year UTC"));
781
792
      break;
782
793
  }
783
794
  // Have to use reverse logic in southern hemisphere.