2014-09-30 1 views
0

Просто из любопытства кто-нибудь знает, почемудата («F», StrToTime (день-месяц-год)) распечатывания неверное значение для второго месяца года

echo date("F", strToTime("$day-02-$year")); 

будет распечатать марта первоначально я думал, что это была общая ошибка на единицу, но

echo date("F", strToTime("$day-01-$year")); 

распечатывает января

echo date("F", strToTime("$day-03-$year")); 

печатает марше, так что я U nsure того, что на самом деле происходит здесь ???

любые идеи

+0

Я думаю, что моя проблема не была дефолтом дня как «j», я просто сделал по умолчанию 01, если не было установленного дня, и теперь он работает, у меня есть календарь, который я собирался из месяца в месяц с помощью простых кнопок и этот день никогда не был установлен в моем условном утверждении, я имел это, если бы день не был установлен, что по умолчанию был нижний регистр j, как только я изменил, что он ответил правильным именем – 2014-09-30 17:58:52

ответ

0

Вы запустите этот сценарий сегодня, так $day=30;?

Итак, если вы попытаетесь получить 30-й день февраля, он вернет вас 2 марта марта или 1 марта в високосные годы. Очевидно потому, что февраль не имеет достаточного количества дней ...

$day = 30; 
$year = 2014; 

echo date("r", strToTime("$day-02-$year")); 

Выход:

Sun, 02 Mar 2014 00:00:00 +0100 

Это не ошибка, это особенность.

0

Моя проблема была недобросовестный день как «J» я только что сделал по умолчанию 01, если не было ни одного дня не установлено и работает в настоящее время,

У меня есть календарь, который я собирался из месяца в месяц с простым и день никогда не был установлен в моем условном утверждении, я имел это, если бы день не был установлен, что значение по умолчанию было строчным j, как только я изменил, что он ответил правильным именем. Поэтому ответ на этот вопрос заключается в том, чтобы убедиться, что день по умолчанию установлено значение 1, если не будет в день присутствует, например, когда вы собираетесь из месяца в месяц

<?php 

     if (isSet($_GET['day'])) { 
      $day = $_GET['day']; 
     } else { 
      $day = date("01"); 
     } 

     if (isSet($_GET['month'])) { 
      $month = $_GET['month']; 
     } else { 
      $month = date("n"); 
     } 

     if (isSet($_GET['year'])){ 
      $year = $_GET['year']; 
     } else { 
      $year = date("Y"); 
     } 

     //calendar variable 
     $currentTimeStamp = strToTime("$day-$month-$year");   
     //get current month name 
     $monthName = date("F", $currentTimeStamp);   
     //get how many days are in the current month 
     $numDays = date("t", $currentTimeStamp);    
     //counter for calendar cells in loop 
     $counter = 0;  
    ?> 

как S о!