angularjs - फायरबसे पर दिनांक इनपुट वैल्यू संग्रहीत करना




firebase firebase-database (2)

आपको अपने स्वरूप में पहली तिथि बदलने की आवश्यकता है। आप उस के लिए SimpleDateFormatFormat का उपयोग कर सकते हैं।

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

अब आप आसानी से अपने प्रारूप को इस प्रारूप में प्रारूपित कर सकते हैं

String mynewdate = sdf.format(mycrop.plantdate.getTime());

आज के लिए आउटपुट होगा:

2016-11-27

बेशक आप उस कैलेंडर को वापस उल्टा कर सकते हैं। मैं यह इस तरह करते हैं:

 public static Calendar fromStringtoCalendar(String datestring){
    int year =  Integer.valueOf(datestring.substring(0, 4));
    int month =  Integer.valueOf(datestring.substring(5, 7)) -1;
    int day =  Integer.valueOf(datestring.substring(8, 10));
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month, day);
    return calendar;
}

तो यह है कि मेरा कोड ऐसा कैसा दिखता है

cropref.child(mycrop.name).push({
                          cropname:mycrop.name,
                          croplocation:mycrop.location,
                          cropplantdate:mycrop.plantdate.toString(),
                          cropharvestdate:mycrop.harvestdate.toString(),         
                  })

mycrop.harvestdate और mycrop.plantdate मेरे एचटीएमएल से दोनों तारीख जानकारी हैं mycrop.plantdate

<input type="date" ng-model='mycrop.harvestdate'>

<input type="date" ng-model='mycrop.harvestdate'>

मेरे फायरबेस डेटाबेस पर डेटा डालने के लिए सक्षम होने के लिए, मुझे इसे पहले स्ट्रिंग में कनवर्ट करना होगा

cropplantdate:mycrop.plantdate.toString(),      

लेकिन मेरे फायरबेस डेटाबेस के डेटा में समय और समयक्षेत्र भी शामिल है

नमूना डेटा

Sat Dec 12 2020 00:00:00 GMT+0800 (Malay Peninsula Standard Time)

इसलिए एक बार जब मैं अपने डाटाबेस से डेटा को कॉल करता हूं, तो मैं इसे फ़िल्टर नहीं कर सकता क्योंकि यह एक तारीख नहीं है, लेकिन एक स्ट्रिंग है। मैं इस समस्या का समाधान कैसे कर सकता हूं ताकि मैं अपने डेटाबेस के अंदर संग्रहीत दिनांक (जो स्ट्रिंग में कनवर्ट हो) को फ़िल्टर कर सकूं


दो विकल्प

1) अधिक सामान्य, लेकिन मानव पठनीय प्रारूप में तारीख को स्टोर करें, अतः अब रविवार 27 नवंबर को 09:13:38 पर होगा

20161127091338

2) तारीख का प्रयोग करके यूनिक्स टाइमस्टैम्प (मिलीसेकंड में) की तारीख को स्टोर करें

(new Date).getTime() / 1000

# 2 के लिए कई प्रकार हैं, इसलिए कुछ शोध करने के लिए देखें कि आपके उपयोग के मामले में सबसे अच्छा कौन सा है।

आप एक स्ट्रिंग के रूप में या तो जवाब बचा सकते हैं लेकिन # 1 अधिक आसानी से खोजे जाने के कारण क्वेरीज़ को किसी भी प्रकार के रूपांतरण की आवश्यकता नहीं होगी - आज का ईवेंट देखने के लिए

queryStartingAt("20161127") and queryEndingAt("20161127")




angular-filters