2011-08-21 43 views
6

Làm thế nào để có thể điền trục x với ngày được đưa ra một giá trị ngày 'từ' và 'đến'?Dân cư Highcharts X-Axis với Ngày Cho Một Từ Và Đến Ngày

Về cơ bản, người dùng sẽ nhập ngày "từ" và "đến" trong giao diện web HTML của tôi; ví dụ: 24/08/2011 - 28/08/2011

Điều này sẽ thông qua các trường văn bản HTML có giá trị được sử dụng jQuery khi người dùng nhấn nút "Xem biểu đồ".

Tôi muốn tạo biểu đồ đường trục có trục x bắt đầu 2 ngày trước ngày "từ" và kết thúc sau 2 ngày kể từ ngày "đến".

Vì vậy, trong ví dụ trên, người dùng cung cấp:

from -> 24/08/2011 
to -> 28/08/2011 

do đó

x-axis start -> 22/08/2011 
x-axis ends -> 30/08/2011 

Tôi cũng muốn nó có 24 khoảng giờ hiển thị như ngày tương ứng của họ. Do đó, trục x nên tìm một cái gì đó như thế này:

| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|___________________________________________________ 
    |  |  |  |  |  |  |  |  | 
22/08 23/08 24/08 25/08 26/08 27/08 28/08 29/08 30/08 

EDIT:

tôi thấy đoạn mã sau:

series: [{ 
     type: 'spline', 
     name: 'USD to EUR', 
     pointInterval: 24 * 3600 * 10, 
     pointStart: Date.UTC(<?php echo($year); ?>, 0, <?php echo($day);?>), 
     data: [ 
      0.8446, 0.8445, 0.8444 
    ] 
     }] 

Nhưng tôi chỉ không thể tìm ra cách HighCharts tương đương khoảng thời gian để các phần dữ liệu .. Tôi biết rõ ràng nó phải làm với pointInterval ...

Tôi có thể đoán rằng 24 * 3600 là số giây trong một ngày nhưng * 10 là gì? Làm cách nào để hiển thị chính xác khoảng thời gian 24 giờ?

+2

Câu hỏi cực kỳ mơ hồ. Cần MOAR INFOZ – adlawson

+0

Bạn hiểu vấn đề của bạn, nhưng chúng tôi không :) Đi bộ trong mười phút sau đó nhìn vào điều này một lần nữa, sau đó chỉnh sửa nó để bao gồm một bối cảnh nhiều hơn một chút. Tôi biết thật khó để hỏi khi bạn đang ở giữa một cái gì đó và có một cảm giác cấp bách cao. –

+0

@Tim, bạn cần tôi giải thích điều gì? Tôi có các phạm vi tối thiểu và tối đa được cung cấp cho tôi ở giao diện người dùng. Tôi muốn đưa chúng vào highcharts và thiết lập các khoảng thời gian như ngày và tự động điền vào giữa các ngày ... – user559142

Trả lời

10

Dưới đây là một số tài liệu tham khảo sẽ giúp bạn.

Cũng tạo ra một mẫu jsfiddle để giúp bạn bắt đầu.

Xaxis

xAxis: { 
    type: "datetime", 
    dateTimeLabelFormats: { 
     day: '%m-%d' 
    }, 
    tickInterval: 24 * 3600 * 1000, 
    min: Date.UTC(<?php echo $date_from;?>), 
    max: Date.UTC(<?php echo $date_to;?>) 
} 

Về cơ bản, điều này không được thiết lập loại Xaxis để 'datetime' nên tickInterval hiểu đó là nó được incrementing bởi 86400000 milliseconds, và cũng có thể thiết lập các định dạng của Xaxis dựa theo yêu cầu date format.
Sau đó, $date_from$date_to sẽ giống như thế này từ PHP xử lý gửi biểu mẫu.

$date_from = date("Y, m, d",strtotime($_POST['from']) - 2*86400); 
$date_to = date("Y, m, d",strtotime($_POST['to']) + 2*86400); 
+0

Tôi hiện đang làm việc trên higcharts với bộ chọn phạm vi ngày. Tôi sẽ sử dụng AJAX để thực hiện các cuộc gọi mới cho các mảng json loại bỏ và thiết lập lại dữ liệu. Sử dụng phương pháp trong câu trả lời của bạn là tôi có thể tải tất cả dữ liệu vào chuỗi, sau đó đặt ngày tối đa min thành những gì nằm trong bộ chọn phạm vi ngày và vẽ lại bảng hoặc làm mới bảng? – Anagio

+0

@Anagio Bạn có thể tìm kiếm API của họ, tôi đoán điều này sẽ phù hợp với bạn, [http://api.highcharts.com/highcharts#Chart.redraw()](http://api.highcharts.com/highcharts# Chart.redraw()). Có, tôi nghĩ bạn có thể tải các thay đổi và cập nhật các trường/thông số chính xác (không phải DOM thực tế cho biểu đồ) và sau đó vẽ lại. – ace

Các vấn đề liên quan