1

Image of current functionalityDateTimePickerの値をエポックとしてミリ秒単位で取得する方法と、この値をGoogle APIのDirectionリクエストに渡す方法はありますか?

こんにちは私が使用しているユーザーは、設定された目的地への到着日/時間を選択できるように自分のアプリケーション内の「xdsoftのDateTimePickerのjqueryのプラグイン」(http://xdsoft.net/jqplugins/datetimepicker/。現在、私のアプリケーションは、GoogleのJavaScriptのAPI &を使用している

は2つの走行モード間のユーザ切り替えができます - トランジットかのどちらかを(私は上記アップロードした画像に見られるように)運転

GoogleのJavaScriptのAPIリクエスト:

directionsService.route({ 
    origin: pos, 
    destination: {lat: *Value*,lng: *Value*}, 

    travelMode: google.maps.TravelMode[selectedMode], 
    transitOptions: { 
    modes: ['RAIL'], 
    ************** 
    arrivalTime: new Date(), <<< *** WHERE I NEED TO PASS DATE/TIME PICKER VALUE 
    ************** 
    routingPreference: 'FEWER_TRANSFERS' 
}, 
    unitSystem: google.maps.UnitSystem.IMPERIAL, 
    provideRouteAlternatives: true 
}, function(response, status) { 

    if (status == 'OK') { 
    directionsDisplay.setDirections(response); 
    } else { 
    window.alert('Directions request failed due to ' + status); 
    } 
}); 
} 

私は「ArrivalTimeは:新しいDate()」内にピッカーから日付/時刻値を渡すするかどうかはわかりません方向は日付に基づいて返されるように、ミリ秒単位のエポックタイムスタンプなどのAPIリクエストにユーザが各tiを選択して更新した時間/時間私はこれが変更されます。当然のことながら、デフォルトでは、指定された日付がなくても、Google APIは現在の時間を返します。日付/時刻ピッカーのための

HTML:日付/時刻ピッカーのための

<div id="timepicker"> 
<input id="datetimepicker" type="text" > 
</div> 

Javascriptを:走行モードと更新の間で切り替えるには、私のAPIリクエストの

jQuery('#datetimepicker').datetimepicker({ 
format:'d.m.Y H:i', 
defaultTime:'15:00' 
}); 

全スクリプトユーザーがdatetimepickerから到着時刻を指定することなく、マップすることができます。

<script> 
function initMap() { 
var directionsDisplay = new google.maps.DirectionsRenderer; 
var directionsService = new google.maps.DirectionsService; 

var lattp = <?php echo json_encode($lattp);?>; 
var lngtp = <?php echo json_encode($lngtp);?>; 
var zoomtp = <?php echo json_encode($zoomtp);?>; 
var tp = {lat: JSON.parse(lattp), lng: JSON.parse(lngtp)}; 

var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 14, 
    center: tp 
}); 
directionsDisplay.setMap(map); 
directionsDisplay.setPanel(document.getElementById('right-panel')); 

if (navigator.geolocation) { 
navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = { 
    lat: position.coords.latitude, 
    lng: position.coords.longitude 
    }; 

    document.getElementsByName('radio').forEach(function(el){ 
    el.addEventListener('click', function() { 
     calculateAndDisplayRoute(directionsService, directionsDisplay, pos); 
    }); 

}) 

    calculateAndDisplayRoute(directionsService, directionsDisplay, pos); 

}, function() { 
    handleLocationError(true, markerme); 
}); 
} else { 
// Browser doesn't support Geolocation 
window.alert('Geolocation is not supported'); 
} 
} 

function calculateAndDisplayRoute(directionsService, directionsDisplay, pos) { 
//var selectedMode = document.getElementById('mode').value; 
var selectedMode = ""; 
var radios = document.getElementsByName('radio') 
radios.forEach(function(element) { 
    if(element.checked){ 
     selectedMode = element.value; 
    } 
}) 

directionsService.route({ 
    origin: pos, 
    destination: {lat: *Value*,lng: *Value*}, 
    travelMode: google.maps.TravelMode[selectedMode], 
    transitOptions: { 
    modes: ['RAIL'], 
    arrivalTime: new Date(), 
    routingPreference: 'FEWER_TRANSFERS' 
}, 
    unitSystem: google.maps.UnitSystem.IMPERIAL, 
    provideRouteAlternatives: true 
}, function(response, status) { 

    if (status == 'OK') { 
    directionsDisplay.setDirections(response); 
    } else { 
    window.alert('Directions request failed due to ' + status); 
    } 
}); 
} 
</script> 

ご協力いただきありがとうございます - ありがとうございます!

答えて

0

フォーマットされた入力ボックスは、すでにDateのコンストラクタが解析できるものです。入力ボックスの値をそのまま入力してください:

startDate = new Date(jquery('#datetimepicker').val()); 
関連する問題