Time.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. /**
  3. * Zend Framework
  4. *
  5. * LICENSE
  6. *
  7. * This source file is subject to the new BSD license that is bundled
  8. * with this package in the file LICENSE.txt.
  9. * It is also available through the world-wide-web at this URL:
  10. * http://framework.zend.com/license/new-bsd
  11. * If you did not receive a copy of the license and are unable to
  12. * obtain it through the world-wide-web, please send an email
  13. * to license@zend.com so we can send you a copy immediately.
  14. *
  15. * @category Zend
  16. * @package Zend_Measure
  17. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  18. * @license http://framework.zend.com/license/new-bsd New BSD License
  19. * @version $Id$
  20. */
  21. /**
  22. * Implement needed classes
  23. */
  24. #require_once 'Zend/Measure/Abstract.php';
  25. #require_once 'Zend/Locale.php';
  26. /**
  27. * Class for handling time conversions
  28. *
  29. * @category Zend
  30. * @package Zend_Measure
  31. * @subpackage Zend_Measure_Time
  32. * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
  33. * @license http://framework.zend.com/license/new-bsd New BSD License
  34. */
  35. class Zend_Measure_Time extends Zend_Measure_Abstract
  36. {
  37. const STANDARD = 'SECOND';
  38. const ANOMALISTIC_YEAR = 'ANOMALISTIC_YEAR';
  39. const ATTOSECOND = 'ATTOSECOND';
  40. const CENTURY = 'CENTURY';
  41. const DAY = 'DAY';
  42. const DECADE = 'DECADE';
  43. const DRACONIC_YEAR = 'DRACONTIC_YEAR';
  44. const EXASECOND = 'EXASECOND';
  45. const FEMTOSECOND = 'FEMTOSECOND';
  46. const FORTNIGHT = 'FORTNIGHT';
  47. const GAUSSIAN_YEAR = 'GAUSSIAN_YEAR';
  48. const GIGASECOND = 'GIGASECOND';
  49. const GREGORIAN_YEAR = 'GREGORIAN_YEAR';
  50. const HOUR = 'HOUR';
  51. const JULIAN_YEAR = 'JULIAN_YEAR';
  52. const KILOSECOND = 'KILOSECOND';
  53. const LEAPYEAR = 'LEAPYEAR';
  54. const MEGASECOND = 'MEGASECOND';
  55. const MICROSECOND = 'MICROSECOND';
  56. const MILLENIUM = 'MILLENIUM';
  57. const MILLISECOND = 'MILLISECOND';
  58. const MINUTE = 'MINUTE';
  59. const MONTH = 'MONTH';
  60. const NANOSECOND = 'NANOSECOND';
  61. const PETASECOND = 'PETASECOND';
  62. const PICOSECOND = 'PICOSECOND';
  63. const QUARTER = 'QUARTER';
  64. const SECOND = 'SECOND';
  65. const SHAKE = 'SHAKE';
  66. const SIDEREAL_YEAR = 'SYNODIC_MONTH';
  67. const TERASECOND = 'TERASECOND';
  68. const TROPICAL_YEAR = 'TROPIC_YEAR';
  69. const WEEK = 'WEEK';
  70. const YEAR = 'YEAR';
  71. /**
  72. * Calculations for all time units
  73. *
  74. * @var array
  75. */
  76. protected $_units = array(
  77. 'ANOMALISTIC_YEAR' => array('31558432', 'anomalistic year'),
  78. 'ATTOSECOND' => array('1.0e-18', 'as'),
  79. 'CENTURY' => array('3153600000', 'century'),
  80. 'DAY' => array('86400', 'day'),
  81. 'DECADE' => array('315360000', 'decade'),
  82. 'DRACONIC_YEAR' => array('29947974', 'draconic year'),
  83. 'EXASECOND' => array('1.0e+18', 'Es'),
  84. 'FEMTOSECOND' => array('1.0e-15', 'fs'),
  85. 'FORTNIGHT' => array('1209600', 'fortnight'),
  86. 'GAUSSIAN_YEAR' => array('31558196', 'gaussian year'),
  87. 'GIGASECOND' => array('1.0e+9', 'Gs'),
  88. 'GREAT_YEAR' => array(array('*' => '31536000', '*' => '25700'), 'great year'),
  89. 'GREGORIAN_YEAR' => array('31536000', 'year'),
  90. 'HOUR' => array('3600', 'h'),
  91. 'JULIAN_YEAR' => array('31557600', 'a'),
  92. 'KILOSECOND' => array('1000', 'ks'),
  93. 'LEAPYEAR' => array('31622400', 'year'),
  94. 'MEGASECOND' => array('1000000', 'Ms'),
  95. 'MICROSECOND' => array('0.000001', 'µs'),
  96. 'MILLENIUM' => array('31536000000', 'millenium'),
  97. 'MILLISECOND' => array('0.001', 'ms'),
  98. 'MINUTE' => array('60', 'min'),
  99. 'MONTH' => array('2628600', 'month'),
  100. 'NANOSECOND' => array('1.0e-9', 'ns'),
  101. 'PETASECOND' => array('1.0e+15', 'Ps'),
  102. 'PICOSECOND' => array('1.0e-12', 'ps'),
  103. 'QUARTER' => array('7884000', 'quarter'),
  104. 'SECOND' => array('1', 's'),
  105. 'SHAKE' => array('1.0e-9', 'shake'),
  106. 'SIDEREAL_YEAR' => array('31558149.7676', 'sidereal year'),
  107. 'TERASECOND' => array('1.0e+12', 'Ts'),
  108. 'TROPICAL_YEAR' => array('31556925', 'tropical year'),
  109. 'WEEK' => array('604800', 'week'),
  110. 'YEAR' => array('31536000', 'year'),
  111. 'STANDARD' => 'SECOND'
  112. );
  113. }