it-swarm.com.de

Berechnen Sie das Enddatum anhand des Startdatums und der Dauer

Mein Ziel ist es, das Enddatum zu berechnen und anzuzeigen , basierend auf meinem Startdatum nach Datumsauswahl und Auswahl der Anzahl der Wochen.

Ich habe Jquery datetimepicker http://xdsoft.net/jqplugins/datetimepicker/ , um das Startdatum auszuwählen, und Dropdown, um die Anzahl der Wochen auszuwählen.

Ich verwende die folgenden Codes, um das Enddatum zu erhalten, aber es funktioniert nicht:

  week_number_id.on('change', function(e) {
var selectvalue = $(this).val();
//Display 'loading' status in the target select list
date_result_id.html('<i class="uk-icon-spinner uk-icon-spin"></i>');
if (selectvalue == '') 
{
    date_result_id.html(initial_date_result_html);
} 
else 
{
    //Make AJAX request, using the selected value as the GET
    $.ajax({
        url: 'index.php',
        data:'option=com_mycom&task=getmydateHTML&dvalue='+selectvalue,
        success: function(output) {
            date_result_id.html(output);
            updateSelect(date_result_id.val());
        },
        error: function (xhr, ajaxOptions, thrownError) {
            alert(xhr.status +  ' ' + thrownError);
        }
    });
}
});

und auf PHP-Code:

  public function getmydateHTML() {
  $jinput = JFactory::getApplication()->input;
  $db = JFactory::getDbo();
  $query = $db->getQuery(true);         
  $dt = $jinput->get ('dvalue');
  $choosendate = $jinput->get ('start_date');       
  $newdate = strtotime("+". $dt . "week", $choosendate);
  echo   date('M d, Y', $newdate);     
 exit; // this will stop Joomla processing, and not output template modules   etc.
   }

Aber nachdem das Berechnungsergebnis das Datum ab dem 01. Januar 1970 anzeigt, werden die Wochen korrekt erhöht, aber der Code kann das Startdatum nicht erhalten.

1
allogos

Ihr Skript sendet nirgendwo den Parameter 'start_date', daher ist der Standardwert 01.01.1970. Fügen Sie den Parameter 'start_date' zu $ ​​.ajax-Daten hinzu oder fügen Sie den Standardwert zu $ ​​jinput-> get hinzu ('start_date', some_default_val).

BTW. - beenden; ist keine gute Vorgehensweise, es gibt bessere Methoden: https://stackoverflow.com/a/13479338/2877359

1
Krossfire

Wie in der vorherigen Antwort angegeben, ist das start_date-Parameter wird nicht über das Feld data gesendet.

Auf jeden Fall weiß ich nicht, warum ich den Server nach dieser einfachen Aufgabe abfrage - Sie können dies am Ende des Clients tun. Siehe this SO answer dazu.

0
itoctopus