Miva Merchant SEO, eCommerce, Miva Modules, Custom Web Apps, and Miva Merchant troubleshooting.
miva certified developers

Miva Merchant & Miva Script News

The storemorph language can display all sorts of data and one of the more useful bits is the current date.

Displaying the current date can be useful for many thing. For example, what if you wanted your site's copyright date to always be the current year? Or you could have the date and time in your header, or you could set up some logic to display different messages such as "Good Morning!" or "Good Evening!" based on the time of day.

Miva Merchant, Miva Merchant Storemorph, Miva Scripting 101

In the past there was always a line drawn in the sand between the Miva scripting language and the storemorph language that you use in your Miva Merchant store pages. Not so any longer. For the past couple of years all built in Miva script functions have been available to us in the storemorph page building language in Miva Merchant.

In this short article, I'll explain how to display the date in your Miva Merchant pages. 

I'm going to be referencing Miva script system variables. A list of them can be found here: http://www.mivascript.com/topic/system-variables.h...

First, to display a normal date string:

<mvt:eval expr="s.dyn_stm_mon $ ' ' $ s.dyn_tm_mday $ ', ' $ s.dyn_tm_year"/> 

This will display the date in this format: Dec 15, 2015

If you want to display the month in it's entirety, you'll need to add a loop that sets a variable based on what month it is and then displays it. Note that there are single quotes around the full names of the months. This is necessary because without the single quotes the storemorph system will treat those month names as variables (and they would be empty so you'd never get your month displayed correctly.)

<mvt:if expr="s.dyn_tm_mon EQ 1">
<mvt:assign name="l.settings:month" value="'January'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 2">
<mvt:assign name="l.month" value="'February'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 3">
<mvt:assign name="l.month" value="'March'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 4">
<mvt:assign name="l.month" value="'April'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 5">
<mvt:assign name="l.month" value="'May'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 6">
<mvt:assign name="l.month" value="'June'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 7">
<mvt:assign name="l.month" value="'July'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 8">
<mvt:assign name="l.month" value="'August'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 9">
<mvt:assign name="l.month" value="'September'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 10">
<mvt:assign name="l.month" value="'October'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 11">
<mvt:assign name="l.month" value="'November'" />
<mvt:elseif expr="s.dyn_tm_mon EQ 12">
<mvt:assign name="l.settings:month" value="'December'" />
<mvt:eval expr="l.settings:month $ ' ' $ s.dyn_tm_mday $ ', ' $ s.dyn_tm_year"/>

This will display the date in this format: December 15, 2015

That's a lot of code to have cluttering up your header or footer, however you can take that out of your page and use it as a content block using our ProContent modue (yes, a blatant sales pitch, but the ProContent module is super powerful for this type of stuff.)

If you were to use the ProContent  module, you could create a content block with that code called <strong>current_date</strong> and display your date anywhere in your store with nothing more than a simple page item:

<mvt:item name="procontent" param="current_date" />

Happy coding!

overall rating:
my rating: log in to rate

mivascript tutorial

Please log in to leave a comment.

The blog posts on Scot's Scripts are served by Scot's Blogger, a Miva Merchant blogging module that makes it easy to create a Wordpress style blog, rich content, and extra pages in your Miva Merchant store.