Hello,
I am creating some custom blocks based on the cookbook block-factory tutorial and one of my blocks has a date field. I am trying to display this in the preview in the js file for that block. But I am getting nowhere. Any ideas, suggestions?
Thank you.
Joke
             
            
              
              
              
            
            
           
          
            
            
              Could you post what you have already done?
             
            
              
              
              
            
            
           
          
            
            
              In the yml file:
    date_start:
        label: Start date
        type: date
        time: false
        display: "MMMM DD, YYYY"
        default: now
in the js file:
        event: {
            computed: {
                dateStartField() {
                    return this.field("date_start");                    
                },
            },
            template: `
                <div @dblclick="open">
<time>{{ dateStartField }}</time>
                 </div>
            `
        }, 
}
This shows me the full value of the field as it is in the content text file. I am not sure how to apply the date conversion functions in the Vue file to get a “pretty” date.
             
            
              
              
              
            
            
           
          
            
            
              You can use the dayjs library to format your dates: Libraries | Kirby CMS
             
            
              
              
              
            
            
           
          
            
            
              Cool. But I am still unclear how to implement that. What is the $library thing referring to?
             
            
              
              
              
            
            
           
          
            
            
              I have tried this:
return this.field("date_start").$library.dayjs().format("DDMMYYYY");
but it gives an error that it “Cannot read properties of undefined (reading ‘dayjs’)”.
             
            
              
              
              
            
            
           
          
            
            
              Your syntax is a bit off, I think it works like this:
const date = this.$library.dayjs(this.field("date_start").value).format("DDMMYYYY");
Not sure about value…maybe works without.
             
            
              
              
              
            
            
           
          
            
            
              It says “Invalid Date”, with or without the value bit.
             
            
              
              
              
            
            
           
          
            
            
              It works if you use this.content instead of this.field().
Like this:
const date = this.$library.dayjs(this.content.date_start).format("DDMMYYYY");
Thanks for pointing me in the right direction.