2015-11-08 4 views
5

मैं क्रिसमस कैलेंडर के लिए एक PHP स्क्रिप्ट बना रहा हूं जो वर्तमान (दिसंबर) तिथि के आधार पर केवल संबंधित सामग्री (कुछ टेक्स्ट और छवियों) को लोड करना है।क्रिसमस कैलेंडर के लिए PHP स्क्रिप्ट

उदाहरण के लिए, 1 दिसंबर (PHP स्क्रिप्ट के आधार पर) केवल निर्दिष्ट सामग्री दिखाई देनी चाहिए। दूसरे दिसंबर को, उस दिन/तारीख के लिए विशिष्ट सामग्री दिखाई देनी चाहिए।

मेरी समस्या यह सुनिश्चित करना है कि जर्मनी में, जाहिर है, हमारे पास वैंकूवर, कनाडा के मुकाबले एक अलग समय क्षेत्र है।

टाइमज़ोन/तिथि के लिए लोड करने पर सही अनुरोध/चेक के साथ काम कर रहे स्क्रिप्ट को मैं कैसे प्राप्त कर सकता हूं कि इन दो विशेष समय-समय पर सामग्री हर समय दिखाई दे रही है (उदाहरण के लिए यह 1 दिसंबर में से एक में है इन टाइमज़ोन) ??

उत्तर

2

यह उत्तर इस धारणा पर आधारित है कि आप उपयोगकर्ता टाइमज़ोन दिखाने के लिए वेबपृष्ठ का उपयोग करते हैं।

पहले ध्यान दें कि आप PHP में उपयोगकर्ता टाइमज़ोन नहीं प्राप्त कर सकते हैं। लेकिन आप क्या कर सकते हैं सर्वर को बताएं कि उपयोगकर्ता की तारीख जावास्क्रिप्ट के माध्यम से क्या है।

आप कुछ इस तरह कर सकते हैं:

var currentdate = new Date(); 
if(currentdate.getMonth() === 11){ // note that January = 0, Feb = 1 etc. So December = 11 
    $.get("//christmasServer.com/timezone.php?user_day=" + currentdate.getDate(), function(data) { // send to server, getDate() will show the day, December 14 will just show 14 
     $('.Christmas').html(data); // do something with the data, for example replace the div .Christmas 
    }); 
} else { 
    // It's not even december in your timezone :-o 
} 

timezone.php में आप अब तय कर सकते हैं क्या दिन है।

इसके अलावा के रूप में:
आप $_SESSION में समय क्षेत्र सेट कर सकते हैं, ताकि आप केवल एक बार सेट करना होगा।

timezone.php:

if(!isset($_SESSION['user_timezone'])){ // if timezone isn't set 
    session_start(); // start session 
    $_SESSION['user_timezone'] = $_GET['user_day']; 
} 

if($_SESSION['user_timezone']===1){ // if it's the first of December 
    echo 'I\'m shown December first'; 
} else if($_SESSION['user_timezone']===2){ // if it's the second of December 
    echo 'I\'m shown December second'; 
} 

// etc... 

अब आप हमेशा $_SESSION['user_timezone'] का उपयोग उपयोगकर्ताओं के समय क्षेत्र के प्राप्त करने के लिए कर सकते हैं।

+0

त्वरित उत्तर के लिए धन्यवाद! अब मैं कुछ मूल्यों को संग्रहीत करने वाले सरणी का उपयोग करने की समस्या पर फंस गया हूं, दिन (इसलिए पहला, दूसरा, तीसरा, आदि) निर्धारित करने के लिए timezone.php में एक फ़ंक्शन बना रहा हूं और उस परिणाम के आधार पर संबंधित। क्रिसमस कक्षा (आपके उदाहरण का उपयोग करके) सरणी से मिले दिन/मूल्य संयोजन से मूल्य से भरा जाना चाहिए ... आप जानते हैं मेरा क्या मतलब है? :/ – maximizeIT

+0

हाय @ maximizeIT, अद्यतन की जांच करें। अब ध्यान दें कि दिसंबर के दूसरे भाग में, जेएस में 'डेटा' चर शामिल होगा:' मुझे दिसंबर दूसरा दिखाया गया है '।इसलिए, यदि आपके पास 'div' है जिसमें कक्षा 'क्रिसमस' है, तो इसका आंतरिक मूल्य बदल दिया जाएगा 'मुझे दिसंबर दूसरा दिखाया गया है' –

+0

अद्यतन के लिए धन्यवाद, लेकिन मुझे नहीं पता कि मैं क्या गलत कर रहा हूं .. यह मेरे लिए बिल्कुल काम नहीं करता है ... – maximizeIT

0

अद्यतन:

<script type="text/javascript"> 
var currentdate = new Date(); 

if(currentdate.getMonth() === 10){ // for testing with november (=10) 
    $.get("/timezone.php?user_day=" + currentdate.getDate(), function(data) { // correct for localhost testing version, so no domain yet?! 
     $('.Christmas').html(data); // do something with the data, for example replace the div .Christmas 
    }); 
} else { 
    // It's not even december in your timezone :-o 
} 
</script> 

index.php में बाद में:

...

<div class="Christmas"> 
</div> 

...

में index.php की मेरी

मेरे timezone.php में (sa में मुझे फ़ोल्डर):

if(!isset($_SESSION['user_timezone'])){ // if timezone isn't set 
session_start(); // start session 
$_SESSION['user_timezone'] = $_GET['user_day'];} 
if($_SESSION['user_timezone']===1){ // if it's the first of December 
echo 'Im shown December first';} else if($_SESSION['user_timezone']===2){ // if it's the second of December 
echo 'Im shown December second';} 
संबंधित मुद्दे