Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

[Resolvido] Classe conversão DATE e DATETIME

Recommended Posts

Classe pra conversão de DATA e DATETIME

 

exemplo das conversoes possiveis:

 

18/05/1977 23:59:12 = 1977-05-18 23:59:12

18/05/1977 23:59:12 = 1977-05-18

1977-05-18 22:45:12 = 18/05/1977 22:45:12

1977-05-18 22:45:12 = 1977/05/18

18/12/1977 = 1977-12-18

1977-12-18 = 18/12/1977

 

ele tem um opcional se passar como parametro ele converte e tira a hora

$data->Converte_Data("1977-05-18 22:45:12", 1 )

"18/05/1977 23:59:12" pra "1977-05-18" tirando a hora

caso nao queria tirar a hora só usar normal

$data->Converte_Data("1977-05-18 22:45:12")

 

ele ainda valida a data e a hora

 

PHP


  1. class data
  2. {
  3. function Converte_Data($data, $redux = "")
  4. {
  5. if (strstr($data, "/"))
  6. {
  7. if (preg_match("/( \d{2}(:\d{2}){2})$/", $data))
  8. {
  9. $arr = explode ("/", $data);
  10. $arr2 = explode(":", $arr[2]);
  11. $ano = substr($arr2[0], 0,4);
  12. $hora = substr($arr2[0], 5,2);
  13. $this->Valida_Data($arr[1], $arr[0], $ano);
  14. $this->Valida_Hora("$hora:$arr2[1]:$arr2[2]");
  15. if($redux == 0)
  16. {
  17. return "$ano-$arr[1]-$arr[0] $hora:$arr2[1]:$arr2[2]";
  18. }
  19. else
  20. {
  21. return "$ano-$arr[1]-$arr[0]";
  22. }
  23. }
  24. else
  25. {
  26. $arr = explode ("/", $data);
  27. $data = "$arr[2]-$arr[1]-$arr[0]";
  28. $this->Valida_Data($arr[1], $arr[0], $arr[2]);
  29. return $data;
  30. }
  31. }
  32. elseif(strstr($data, "-"))
  33. {
  34. if (preg_match("/( \d{2}(:\d{2}){2})$/", $data))
  35. {
  36. $arr = explode ("-", $data);
  37. $arr2 = explode(":" , $data);
  38. $dia = substr($arr[2] , 0, 2);
  39. $hora = substr($arr[2] , 3, 2);
  40. $ano = substr($arr2[0], 0,4);
  41. $this->Valida_Data($arr[1], $dia, $arr[0]);
  42. $this->Valida_Hora("$hora:$arr2[1]:$arr2[2]");
  43. if($redux == 0)
  44. {
  45. return "$dia/$arr[1]/$arr[0] $hora:$arr2[1]:$arr2[2]";
  46. }
  47. else
  48. {
  49. return "$dia/$arr[1]/$arr[0]";
  50. }

  51. }
  52. else
  53. {
  54. $arr = explode ("-", $data);
  55. $data = "$arr[2]/$arr[1]/$arr[0]";
  56. $this->Valida_Data($arr[1], $arr[2], $arr[0]);
  57. return $data;
  58. }
  59. }
  60. }

  61. function Valida_Data($dia, $mes, $ano)
  62. {
  63. if( !checkdate($dia, $mes, $ano))
  64. {
  65. echo "Data Invalida";
  66. exit;
  67. }
  68. }

  69. function Valida_Hora($hora)
  70. {
  71. if( !preg_match("/^[012][0-9]:[0-5][0-9]:[0-5][0-9]$/i", $hora))
  72. {
  73. echo "Hora Invalida";
  74. exit;
  75. }
  76. elseif( preg_match("/^(24|25|26|27|28|29):.*$/i", $hora))
  77. {
  78. echo "Hora Invalida";
  79. exit;
  80. }
  81. }
  82. }

  83. //modo de usar:
  84. $data = new data();
  85. echo "18/05/1977 23:59:12 = ".$data->Converte_Data("18/05/1977 23:59:12")."
    "
    ;
  86. echo "18/05/1977 23:59:12 = ".$data->Converte_Data("18/05/1977 23:59:12", 1)."
    "
    ;
  87. echo "1977-05-18 22:45:12 = ".$data->Converte_Data("1977-05-18 22:45:12")."
    "
    ;
  88. echo "1977-05-18 22:45:12 = ".$data->Converte_Data("1977-05-18 22:45:12", 1 )."
    "
    ;
  89. echo "18/12/1977 = ".$data->Converte_Data("18/12/1977")."
    "
    ;
  90. echo "1977-12-18 = ".$data->Converte_Data("1977-12-18");

  91. ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.